summaryrefslogtreecommitdiffstats
path: root/man/man1
diff options
context:
space:
mode:
Diffstat (limited to 'man/man1')
-rw-r--r--man/man1/getent.1387
-rw-r--r--man/man1/iconv.1204
-rw-r--r--man/man1/intro.1305
-rw-r--r--man/man1/ldd.1180
-rw-r--r--man/man1/locale.1208
-rw-r--r--man/man1/localedef.1415
-rw-r--r--man/man1/memusage.1262
-rw-r--r--man/man1/memusagestat.173
-rw-r--r--man/man1/mtrace.147
-rw-r--r--man/man1/pldd.1105
-rw-r--r--man/man1/sprof.1282
-rw-r--r--man/man1/time.1329
12 files changed, 2797 insertions, 0 deletions
diff --git a/man/man1/getent.1 b/man/man1/getent.1
new file mode 100644
index 0000000..98032ea
--- /dev/null
+++ b/man/man1/getent.1
@@ -0,0 +1,387 @@
+.\" Copyright (c) 2011, Mark R. Bannister <cambridge@users.sourceforge.net>
+.\" Copyright (c) 2015, Robin H. Johnson <robbat2@gentoo.org>
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.\"
+.TH getent 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+getent \- get entries from Name Service Switch libraries
+.SH SYNOPSIS
+.nf
+.B getent [\fIoption\fP]... \fIdatabase\fP \fIkey\fP...
+.fi
+.SH DESCRIPTION
+The
+.B getent
+command displays entries from databases supported by the
+Name Service Switch libraries,
+which are configured in
+.IR /etc/nsswitch.conf .
+If one or more
+.I key
+arguments are provided,
+then only the entries that match the supplied keys will be displayed.
+Otherwise, if no
+.I key
+is provided, all entries will be displayed (unless the database does not
+support enumeration).
+.P
+The
+.I database
+may be any of those supported by the GNU C Library, listed below:
+.TP
+.B ahosts
+When no
+.I key
+is provided, use
+.BR sethostent (3),
+.BR gethostent (3),
+and
+.BR endhostent (3)
+to enumerate the hosts database.
+This is identical to using
+.BR hosts (5).
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR getaddrinfo (3)
+with the address family
+.BR AF_UNSPEC ,
+enumerating each socket address structure returned.
+.TP
+.B ahostsv4
+Same as
+.BR ahosts ,
+but use the address family
+.BR AF_INET .
+.TP
+.B ahostsv6
+Same as
+.BR ahosts ,
+but use the address family
+.BR AF_INET6 .
+The call to
+.BR getaddrinfo (3)
+in this case includes the
+.B AI_V4MAPPED
+flag.
+.TP
+.B aliases
+When no
+.I key
+is provided, use
+.BR setaliasent (3),
+.BR getaliasent (3),
+and
+.BR endaliasent (3)
+to enumerate the aliases database.
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR getaliasbyname (3)
+and display the result.
+.TP
+.B ethers
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR ether_aton (3)
+and
+.BR ether_hostton (3)
+until a result is obtained, and display the result.
+Enumeration is not supported on
+.BR ethers ,
+so a
+.I key
+must be provided.
+.TP
+.B group
+When no
+.I key
+is provided, use
+.BR setgrent (3),
+.BR getgrent (3),
+and
+.BR endgrent (3)
+to enumerate the group database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getgrgid (3)
+and each nonnumeric
+.I key
+to
+.BR getgrnam (3)
+and display the result.
+.TP
+.B gshadow
+When no
+.I key
+is provided, use
+.BR setsgent (3),
+.BR getsgent (3),
+and
+.BR endsgent (3)
+to enumerate the gshadow database.
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR getsgnam (3)
+and display the result.
+.TP
+.B hosts
+When no
+.I key
+is provided, use
+.BR sethostent (3),
+.BR gethostent (3),
+and
+.BR endhostent (3)
+to enumerate the hosts database.
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+to
+.BR gethostbyaddr (3)
+or
+.BR gethostbyname2 (3),
+depending on whether a call to
+.BR inet_pton (3)
+indicates that the
+.I key
+is an IPv6 or IPv4 address or not, and display the result.
+.TP
+.B initgroups
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR getgrouplist (3)
+and display the result.
+Enumeration is not supported on
+.BR initgroups ,
+so a
+.I key
+must be provided.
+.TP
+.B netgroup
+When one
+.I key
+is provided, pass the
+.I key
+to
+.BR setnetgrent (3)
+and, using
+.BR getnetgrent (3)
+display the resulting string triple
+.RI ( hostname ", " username ", " domainname ).
+Alternatively, three
+.I keys
+may be provided, which are interpreted as the
+.IR hostname ,
+.IR username ,
+and
+.I domainname
+to match to a netgroup name via
+.BR innetgr (3).
+Enumeration is not supported on
+.BR netgroup ,
+so either one or three
+.I keys
+must be provided.
+.TP
+.B networks
+When no
+.I key
+is provided, use
+.BR setnetent (3),
+.BR getnetent (3),
+and
+.BR endnetent (3)
+to enumerate the networks database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getnetbyaddr (3)
+and each nonnumeric
+.I key
+to
+.BR getnetbyname (3)
+and display the result.
+.TP
+.B passwd
+When no
+.I key
+is provided, use
+.BR setpwent (3),
+.BR getpwent (3),
+and
+.BR endpwent (3)
+to enumerate the passwd database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getpwuid (3)
+and each nonnumeric
+.I key
+to
+.BR getpwnam (3)
+and display the result.
+.TP
+.B protocols
+When no
+.I key
+is provided, use
+.BR setprotoent (3),
+.BR getprotoent (3),
+and
+.BR endprotoent (3)
+to enumerate the protocols database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getprotobynumber (3)
+and each nonnumeric
+.I key
+to
+.BR getprotobyname (3)
+and display the result.
+.TP
+.B rpc
+When no
+.I key
+is provided, use
+.BR setrpcent (3),
+.BR getrpcent (3),
+and
+.BR endrpcent (3)
+to enumerate the rpc database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getrpcbynumber (3)
+and each nonnumeric
+.I key
+to
+.BR getrpcbyname (3)
+and display the result.
+.TP
+.B services
+When no
+.I key
+is provided, use
+.BR setservent (3),
+.BR getservent (3),
+and
+.BR endservent (3)
+to enumerate the services database.
+When one or more
+.I key
+arguments are provided, pass each numeric
+.I key
+to
+.BR getservbynumber (3)
+and each nonnumeric
+.I key
+to
+.BR getservbyname (3)
+and display the result.
+.TP
+.B shadow
+When no
+.I key
+is provided, use
+.BR setspent (3),
+.BR getspent (3),
+and
+.BR endspent (3)
+to enumerate the shadow database.
+When one or more
+.I key
+arguments are provided, pass each
+.I key
+in succession to
+.BR getspnam (3)
+and display the result.
+.SH OPTIONS
+.TP
+.BI \-\-service\~ service
+.TQ
+.BI \-s\~ service
+.\" commit 9d0881aa76b399e6a025c5cf44bebe2ae0efa8af (glibc)
+Override all databases with the specified service.
+(Since glibc 2.2.5.)
+.TP
+.BI \-\-service\~ database : service
+.TQ
+.BI \-s\~ database : service
+.\" commit b4f6f4be85d32b9c03361c38376e36f08100e3e8 (glibc)
+Override only specified databases with the specified service.
+The option may be used multiple times,
+but only the last service for each database will be used.
+(Since glibc 2.4.)
+.TP
+.B \-\-no\-idn
+.TQ
+.B \-i
+.\" commit a160f8d808cf8020b13bd0ef4a9eaf3c11f964ad (glibc)
+Disables IDN encoding in lookups for
+.BR ahosts / getaddrinfo (3)
+(Since glibc-2.13.)
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Print a usage summary and exit.
+.TP
+.B \-\-usage
+Print a short usage summary and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Print the version number, license, and disclaimer of warranty for
+.BR getent .
+.SH EXIT STATUS
+One of the following exit values can be returned by
+.BR getent :
+.TP
+.B 0
+Command completed successfully.
+.TP
+.B 1
+Missing arguments, or
+.I database
+unknown.
+.TP
+.B 2
+One or more supplied
+.I key
+could not be found in the
+.IR database .
+.TP
+.B 3
+Enumeration not supported on this
+.IR database .
+.SH SEE ALSO
+.BR nsswitch.conf (5)
diff --git a/man/man1/iconv.1 b/man/man1/iconv.1
new file mode 100644
index 0000000..15c5471
--- /dev/null
+++ b/man/man1/iconv.1
@@ -0,0 +1,204 @@
+.\" Copyright (C) 2014 Marko Myllynen <myllynen@redhat.com>
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.\"
+.TH iconv 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+iconv \- convert text from one character encoding to another
+.SH SYNOPSIS
+.B iconv
+.RI [ options ]
+.RI "[\-f " from-encoding "]"
+.RI "[\-t " to-encoding "]"
+.RI [ inputfile ]...
+.SH DESCRIPTION
+The
+.B iconv
+program reads in text in one encoding and outputs the text in another
+encoding.
+If no input files are given, or if it is given as a dash (\-),
+.B iconv
+reads from standard input.
+If no output file is given,
+.B iconv
+writes to standard output.
+.P
+If no
+.I from-encoding
+is given, the default is derived
+from the current locale's character encoding.
+If no
+.I to-encoding
+is given, the default is derived
+from the current locale's character
+encoding.
+.SH OPTIONS
+.TP
+.BI \-\-from\-code= from-encoding
+.TQ
+.BI \-f\~ from-encoding
+Use
+.I from-encoding
+for input characters.
+.TP
+.BI \-\-to\-code= to-encoding
+.TQ
+.BI \-t\~ to-encoding
+Use
+.I to-encoding
+for output characters.
+.IP
+If the string
+.B //IGNORE
+is appended to
+.IR to-encoding ,
+characters that cannot be converted are discarded and an error is
+printed after conversion.
+.IP
+If the string
+.B //TRANSLIT
+is appended to
+.IR to-encoding ,
+characters being converted are transliterated when needed and possible.
+This means that when a character cannot be represented in the target
+character set, it can be approximated through one or several similar
+looking characters.
+Characters that are outside of the target character set and cannot be
+transliterated are replaced with a question mark (?) in the output.
+.TP
+.B \-\-list
+.TQ
+.B \-l
+List all known character set encodings.
+.TP
+.B \-c
+Silently discard characters that cannot be converted instead of
+terminating when encountering such characters.
+.TP
+.BI \-\-output= outputfile
+.TQ
+.BI \-o\~ outputfile
+Use
+.I outputfile
+for output.
+.TP
+.B \-\-silent
+.TQ
+.B \-s
+This option is ignored; it is provided only for compatibility.
+.TP
+.B \-\-verbose
+Print progress information on standard error when processing
+multiple files.
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Print a usage summary and exit.
+.TP
+.B \-\-usage
+Print a short usage summary and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Print the version number, license, and disclaimer of warranty for
+.BR iconv .
+.SH EXIT STATUS
+Zero on success, nonzero on errors.
+.SH ENVIRONMENT
+Internally, the
+.B iconv
+program uses the
+.BR iconv (3)
+function which in turn uses
+.I gconv
+modules (dynamically loaded shared libraries)
+to convert to and from a character set.
+Before calling
+.BR iconv (3),
+the
+.B iconv
+program must first allocate a conversion descriptor using
+.BR iconv_open (3).
+The operation of the latter function is influenced by the setting of the
+.B GCONV_PATH
+environment variable:
+.IP \[bu] 3
+If
+.B GCONV_PATH
+is not set,
+.BR iconv_open (3)
+loads the system gconv module configuration cache file created by
+.BR iconvconfig (8)
+and then, based on the configuration,
+loads the gconv modules needed to perform the conversion.
+If the system gconv module configuration cache file is not available
+then the system gconv module configuration file is used.
+.IP \[bu]
+If
+.B GCONV_PATH
+is defined (as a colon-separated list of pathnames),
+the system gconv module configuration cache is not used.
+Instead,
+.BR iconv_open (3)
+first tries to load the configuration files by searching the directories in
+.B GCONV_PATH
+in order,
+followed by the system default gconv module configuration file.
+If a directory does not contain a gconv module configuration file,
+any gconv modules that it may contain are ignored.
+If a directory contains a gconv module configuration file
+and it is determined that a module needed for this conversion is
+available in the directory,
+then the needed module is loaded from that directory,
+the order being such that the first suitable module found in
+.B GCONV_PATH
+is used.
+This allows users to use custom modules and even replace system-provided
+modules by providing such modules in
+.B GCONV_PATH
+directories.
+.SH FILES
+.TP
+.I /usr/lib/gconv
+Usual default gconv module path.
+.TP
+.I /usr/lib/gconv/gconv\-modules
+Usual system default gconv module configuration file.
+.TP
+.I /usr/lib/gconv/gconv\-modules.cache
+Usual system gconv module configuration cache.
+.P
+Depending on the architecture,
+the above files may instead be located at directories with the path prefix
+.IR /usr/lib64 .
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001.
+.SH EXAMPLES
+Convert text from the ISO/IEC\~8859-15 character encoding to UTF-8:
+.P
+.in +4n
+.EX
+$ \fBiconv \-f ISO\-8859\-15 \-t UTF\-8 < input.txt > output.txt\fP
+.EE
+.in
+.P
+The next example converts from UTF-8 to ASCII, transliterating when
+possible:
+.P
+.in +4n
+.EX
+$ \fBecho abc ß α € àḃç | iconv \-f UTF\-8 \-t ASCII//TRANSLIT\fP
+abc ss ? EUR abc
+.EE
+.in
+.SH SEE ALSO
+.BR locale (1),
+.BR uconv (1),
+.BR iconv (3),
+.BR nl_langinfo (3),
+.BR charsets (7),
+.BR iconvconfig (8)
diff --git a/man/man1/intro.1 b/man/man1/intro.1
new file mode 100644
index 0000000..9f5502a
--- /dev/null
+++ b/man/man1/intro.1
@@ -0,0 +1,305 @@
+.\" Copyright (c) 2002 Andries Brouwer <aeb@cwi.nl>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH intro 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+intro \- introduction to user commands
+.SH DESCRIPTION
+Section 1 of the manual describes user commands and tools,
+for example, file manipulation tools, shells, compilers,
+web browsers, file and image viewers and editors, and so on.
+.SH NOTES
+Linux is a flavor of UNIX, and as a first approximation
+all user commands under UNIX work precisely the same under
+Linux (and FreeBSD and lots of other UNIX-like systems).
+.P
+Under Linux, there are GUIs (graphical user interfaces), where you
+can point and click and drag, and hopefully get work done without
+first reading lots of documentation.
+The traditional UNIX environment
+is a CLI (command line interface), where you type commands to
+tell the computer what to do.
+That is faster and more powerful,
+but requires finding out what the commands are.
+Below a bare minimum, to get started.
+.SS Login
+In order to start working, you probably first have to open a session by
+giving your username and password.
+The program
+.BR login (1)
+now starts a
+.I shell
+(command interpreter) for you.
+In case of a graphical login, you get a screen with menus or icons
+and a mouse click will start a shell in a window.
+See also
+.BR xterm (1).
+.SS The shell
+One types commands to the
+.IR shell ,
+the command interpreter.
+It is not built-in, but is just a program
+and you can change your shell.
+Everybody has their own favorite one.
+The standard one is called
+.IR sh .
+See also
+.BR ash (1),
+.BR bash (1),
+.BR chsh (1),
+.BR csh (1),
+.BR dash (1),
+.BR ksh (1),
+.BR zsh (1).
+.P
+A session might go like:
+.P
+.in +4n
+.EX
+.RB "knuth login: " aeb
+.RB "Password: " ********
+.RB "$ " date
+Tue Aug 6 23:50:44 CEST 2002
+.RB "$ " cal
+ August 2002
+Su Mo Tu We Th Fr Sa
+ 1 2 3
+ 4 5 6 7 8 9 10
+11 12 13 14 15 16 17
+18 19 20 21 22 23 24
+25 26 27 28 29 30 31
+\&
+.RB "$ " ls
+bin tel
+.RB "$ " "ls \-l"
+total 2
+drwxrwxr\-x 2 aeb 1024 Aug 6 23:51 bin
+\-rw\-rw\-r\-\- 1 aeb 37 Aug 6 23:52 tel
+.RB "$ " "cat tel"
+maja 0501\-1136285
+peter 0136\-7399214
+.RB "$ " "cp tel tel2"
+.RB "$ " "ls \-l"
+total 3
+drwxr\-xr\-x 2 aeb 1024 Aug 6 23:51 bin
+\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:52 tel
+\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:53 tel2
+.RB "$ " "mv tel tel1"
+.RB "$ " "ls \-l"
+total 3
+drwxr\-xr\-x 2 aeb 1024 Aug 6 23:51 bin
+\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:52 tel1
+\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:53 tel2
+.RB "$ " "diff tel1 tel2"
+.RB "$ " "rm tel1"
+.RB "$ " "grep maja tel2"
+maja 0501\-1136285
+$
+.EE
+.in
+.P
+Here typing Control-D ended the session.
+.P
+The
+.B $
+here was the command prompt\[em]it is the shell's way of indicating
+that it is ready for the next command.
+The prompt can be customized
+in lots of ways, and one might include stuff like username,
+machine name, current directory, time, and so on.
+An assignment PS1="What next, master? "
+would change the prompt as indicated.
+.P
+We see that there are commands
+.I date
+(that gives date and time), and
+.I cal
+(that gives a calendar).
+.P
+The command
+.I ls
+lists the contents of the current directory\[em]it tells you what
+files you have.
+With a
+.I \-l
+option it gives a long listing,
+that includes the owner and size and date of the file, and the
+permissions people have for reading and/or changing the file.
+For example, the file "tel" here is 37 bytes long, owned by aeb
+and the owner can read and write it, others can only read it.
+Owner and permissions can be changed by the commands
+.I chown
+and
+.IR chmod .
+.P
+The command
+.I cat
+will show the contents of a file.
+(The name is from "concatenate and print": all files given as
+parameters are concatenated and sent to "standard output"
+(see
+.BR stdout (3)),
+here
+the terminal screen.)
+.P
+The command
+.I cp
+(from "copy") will copy a file.
+.P
+The command
+.I mv
+(from "move"), on the other hand, only renames it.
+.P
+The command
+.I diff
+lists the differences between two files.
+Here there was no output because there were no differences.
+.P
+The command
+.I rm
+(from "remove") deletes the file, and be careful! it is gone.
+No wastepaper basket or anything.
+Deleted means lost.
+.P
+The command
+.I grep
+(from "g/re/p") finds occurrences of a string in one or more files.
+Here it finds Maja's telephone number.
+.SS Pathnames and the current directory
+Files live in a large tree, the file hierarchy.
+Each has a
+.I "pathname"
+describing the path from the root of the tree (which is called
+.IR / )
+to the file.
+For example, such a full pathname might be
+.IR /home/aeb/tel .
+Always using full pathnames would be inconvenient, and the name
+of a file in the current directory may be abbreviated by giving
+only the last component.
+That is why
+.I /home/aeb/tel
+can be abbreviated
+to
+.I tel
+when the current directory is
+.IR /home/aeb .
+.P
+The command
+.I pwd
+prints the current directory.
+.P
+The command
+.I cd
+changes the current directory.
+.P
+Try alternatively
+.I cd
+and
+.I pwd
+commands and explore
+.I cd
+usage: "cd", "cd .", "cd ..", "cd /", and "cd \[ti]".
+.SS Directories
+The command
+.I mkdir
+makes a new directory.
+.P
+The command
+.I rmdir
+removes a directory if it is empty, and complains otherwise.
+.P
+The command
+.I find
+(with a rather baroque syntax) will find files with given name
+or other properties.
+For example, "find . \-name tel" would find
+the file
+.I tel
+starting in the present directory (which is called
+.IR . ).
+And "find / \-name tel" would do the same, but starting at the root
+of the tree.
+Large searches on a multi-GB disk will be time-consuming,
+and it may be better to use
+.BR locate (1).
+.SS Disks and filesystems
+The command
+.I mount
+will attach the filesystem found on some disk (or floppy, or CDROM or so)
+to the big filesystem hierarchy.
+And
+.I umount
+detaches it again.
+The command
+.I df
+will tell you how much of your disk is still free.
+.SS Processes
+On a UNIX system many user and system processes run simultaneously.
+The one you are talking to runs in the
+.IR foreground ,
+the others in the
+.IR background .
+The command
+.I ps
+will show you which processes are active and what numbers these
+processes have.
+The command
+.I kill
+allows you to get rid of them.
+Without option this is a friendly
+request: please go away.
+And "kill \-9" followed by the number
+of the process is an immediate kill.
+Foreground processes can often be killed by typing Control-C.
+.SS Getting information
+There are thousands of commands, each with many options.
+Traditionally commands are documented on
+.IR "man pages" ,
+(like this one), so that the command "man kill" will document
+the use of the command "kill" (and "man man" document the command "man").
+The program
+.I man
+sends the text through some
+.IR pager ,
+usually
+.IR less .
+Hit the space bar to get the next page, hit q to quit.
+.P
+In documentation it is customary to refer to man pages
+by giving the name and section number, as in
+.BR man (1).
+Man pages are terse, and allow you to find quickly some forgotten
+detail.
+For newcomers an introductory text with more examples
+and explanations is useful.
+.P
+A lot of GNU/FSF software is provided with info files.
+Type "info info"
+for an introduction on the use of the program
+.IR info .
+.P
+Special topics are often treated in HOWTOs.
+Look in
+.I /usr/share/doc/howto/en
+and use a browser if you find HTML files there.
+.\"
+.\" Actual examples? Separate section for each of cat, cp, ...?
+.\" gzip, bzip2, tar, rpm
+.SH SEE ALSO
+.BR ash (1),
+.BR bash (1),
+.BR chsh (1),
+.BR csh (1),
+.BR dash (1),
+.BR ksh (1),
+.BR locate (1),
+.BR login (1),
+.BR man (1),
+.BR xterm (1),
+.BR zsh (1),
+.BR wait (2),
+.BR stdout (3),
+.BR man\-pages (7),
+.BR standards (7)
diff --git a/man/man1/ldd.1 b/man/man1/ldd.1
new file mode 100644
index 0000000..8f97777
--- /dev/null
+++ b/man/man1/ldd.1
@@ -0,0 +1,180 @@
+.\" Copyright 1995-2000 David Engel (david@ods.com)
+.\" Copyright 1995 Rickard E. Faith (faith@cs.unc.edu)
+.\" Copyright 2000 Ben Collins (bcollins@debian.org)
+.\" Redone for glibc 2.2
+.\" Copyright 2000 Jakub Jelinek (jakub@redhat.com)
+.\" Corrected.
+.\" and Copyright (C) 2012, 2016, Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.TH ldd 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+ldd \- print shared object dependencies
+.SH SYNOPSIS
+.nf
+.BR ldd " [\fIoption\fP]... \fIfile\fP..."
+.fi
+.SH DESCRIPTION
+.B ldd
+prints the shared objects (shared libraries) required by each program or
+shared object specified on the command line.
+An example of its use and output
+is the following:
+.P
+.in +4n
+.EX
+$ \fBldd /bin/ls\fP
+ linux\-vdso.so.1 (0x00007ffcc3563000)
+ libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
+ libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
+ libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
+ libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
+ libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
+ /lib64/ld\-linux\-x86\-64.so.2 (0x00005574bf12e000)
+ libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
+ libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
+.EE
+.in
+.P
+In the usual case,
+.B ldd
+invokes the standard dynamic linker (see
+.BR ld.so (8))
+with the
+.B LD_TRACE_LOADED_OBJECTS
+environment variable set to 1.
+This causes the dynamic linker to inspect the program's dynamic dependencies,
+and find (according to the rules described in
+.BR ld.so (8))
+and load the objects that satisfy those dependencies.
+For each dependency,
+.B ldd
+displays the location of the matching object
+and the (hexadecimal) address at which it is loaded.
+(The
+.I linux\-vdso
+and
+.I ld\-linux
+shared dependencies are special; see
+.BR vdso (7)
+and
+.BR ld.so (8).)
+.\"
+.SS Security
+Be aware that in some circumstances
+(e.g., where the program specifies an ELF interpreter other than
+.IR ld\-linux.so ),
+.\" The circumstances are where the program has an interpreter
+.\" other than ld-linux.so. In this case, ldd tries to execute the
+.\" program directly with LD_TRACE_LOADED_OBJECTS=1, with the
+.\" result that the program interpreter gets control, and can do
+.\" what it likes, or pass control to the program itself.
+.\" Much more detail at
+.\" http://www.catonmat.net/blog/ldd-arbitrary-code-execution/
+some versions of
+.B ldd
+may attempt to obtain the dependency information
+by attempting to directly execute the program,
+which may lead to the execution of whatever code is defined
+in the program's ELF interpreter,
+and perhaps to execution of the program itself.
+.\" Mainline glibc's ldd allows this possibility (the line
+.\" try_trace "$file"
+.\" in glibc 2.15, for example), but many distro versions of
+.\" ldd seem to remove that code path from the script.
+(Before glibc 2.27,
+.\" glibc commit eedca9772e99c72ab4c3c34e43cc764250aa3e3c
+the upstream
+.B ldd
+implementation did this for example,
+although most distributions provided a modified version that did not.)
+.P
+Thus, you should
+.I never
+employ
+.B ldd
+on an untrusted executable,
+since this may result in the execution of arbitrary code.
+A safer alternative when dealing with untrusted executables is:
+.P
+.in +4n
+.EX
+$ \fBobjdump \-p /path/to/program | grep NEEDED\fP
+.EE
+.in
+.P
+Note, however, that this alternative shows only the direct dependencies
+of the executable, while
+.B ldd
+shows the entire dependency tree of the executable.
+.SH OPTIONS
+.TP
+.B \-\-version
+Print the version number of
+.BR ldd .
+.TP
+.B \-\-verbose
+.TQ
+.B \-v
+Print all information, including, for example,
+symbol versioning information.
+.TP
+.B \-\-unused
+.TQ
+.B \-u
+Print unused direct dependencies.
+(Since glibc 2.3.4.)
+.TP
+.B \-\-data\-relocs
+.TQ
+.B \-d
+Perform relocations and report any missing objects (ELF only).
+.TP
+.B \-\-function\-relocs
+.TQ
+.B \-r
+Perform relocations for both data objects and functions, and
+report any missing objects or functions (ELF only).
+.TP
+.B \-\-help
+Usage information.
+.\" .SH NOTES
+.\" The standard version of
+.\" .B ldd
+.\" comes with glibc2.
+.\" Libc5 came with an older version, still present
+.\" on some systems.
+.\" The long options are not supported by the libc5 version.
+.\" On the other hand, the glibc2 version does not support
+.\" .B \-V
+.\" and only has the equivalent
+.\" .BR \-\-version .
+.\" .P
+.\" The libc5 version of this program will use the name of a library given
+.\" on the command line as-is when it contains a \[aq]/\[aq]; otherwise it
+.\" searches for the library in the standard locations.
+.\" To run it
+.\" on a shared library in the current directory, prefix the name with "./".
+.SH BUGS
+.B ldd
+does not work on a.out shared libraries.
+.P
+.B ldd
+does not work with some extremely old a.out programs which were
+built before
+.B ldd
+support was added to the compiler releases.
+If you use
+.B ldd
+on one of these programs, the program will attempt to run with
+.I argc
+= 0 and the results will be unpredictable.
+.\" .SH AUTHOR
+.\" David Engel.
+.\" Roland McGrath and Ulrich Drepper.
+.SH SEE ALSO
+.BR pldd (1),
+.BR sprof (1),
+.BR ld.so (8),
+.BR ldconfig (8)
diff --git a/man/man1/locale.1 b/man/man1/locale.1
new file mode 100644
index 0000000..debe7ce
--- /dev/null
+++ b/man/man1/locale.1
@@ -0,0 +1,208 @@
+.\" Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH locale 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+locale \- get locale-specific information
+.SH SYNOPSIS
+.nf
+.BR locale " [\fIoption\fP]"
+.BR locale " [\fIoption\fP] " \-a
+.BR locale " [\fIoption\fP] " \-m
+.BR locale " [\fIoption\fP] \fIname\fP..."
+.fi
+.SH DESCRIPTION
+The
+.B locale
+command displays information about the current locale, or all locales,
+on standard output.
+.P
+When invoked without arguments,
+.B locale
+displays the current locale settings for each locale category (see
+.BR locale (5)),
+based on the settings of the environment variables that control the locale
+(see
+.BR locale (7)).
+Values for variables set in the environment are printed without double
+quotes, implied values are printed with double quotes.
+.P
+If either the
+.B \-a
+or the
+.B \-m
+option (or one of their long-format equivalents) is specified,
+the behavior is as follows:
+.TP
+.B \-\-all\-locales
+.TQ
+.B \-a
+Display a list of all available locales.
+The
+.B \-v
+option causes the
+.B LC_IDENTIFICATION
+metadata about each locale to be included in the output.
+.TP
+.B \-\-charmaps
+.TQ
+.B \-m
+Display the available charmaps (character set description files).
+To display the current character set for the locale, use
+\fBlocale \-c charmap\fR.
+.P
+The
+.B locale
+command can also be provided with one or more arguments,
+which are the names of locale keywords (for example,
+.IR date_fmt ,
+.IR ctype\-class\-names ,
+.IR yesexpr ,
+or
+.IR decimal_point )
+or locale categories (for example,
+.B LC_CTYPE
+or
+.BR LC_TIME ).
+For each argument, the following is displayed:
+.IP \[bu] 3
+For a locale keyword, the value of that keyword to be displayed.
+.IP \[bu]
+For a locale category,
+the values of all keywords in that category are displayed.
+.P
+When arguments are supplied, the following options are meaningful:
+.TP
+.B \-\-category\-name
+.TQ
+.B \-c
+For a category name argument,
+write the name of the locale category
+on a separate line preceding the list of keyword values for that category.
+.IP
+For a keyword name argument,
+write the name of the locale category for this keyword
+on a separate line preceding the keyword value.
+.IP
+This option improves readability when multiple name arguments are specified.
+It can be combined with the
+.B \-k
+option.
+.TP
+.B \-\-keyword\-name
+.TQ
+.B \-k
+For each keyword whose value is being displayed,
+include also the name of that keyword,
+so that the output has the format:
+.IP
+.in +4n
+.EX
+.IR keyword =\[dq] value \[dq]
+.EE
+.in
+.P
+The
+.B locale
+command also knows about the following options:
+.TP
+.B \-\-verbose
+.TQ
+.B \-v
+Display additional information for some command-line option and argument
+combinations.
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Display a summary of command-line options and arguments and exit.
+.TP
+.B \-\-usage
+Display a short usage message and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Display the program version and exit.
+.SH FILES
+.TP
+.I /usr/lib/locale/locale\-archive
+Usual default locale archive location.
+.TP
+.I /usr/share/i18n/locales
+Usual default path for locale definition files.
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001.
+.SH EXAMPLES
+.EX
+$ \fBlocale\fP
+LANG=en_US.UTF\-8
+LC_CTYPE="en_US.UTF\-8"
+LC_NUMERIC="en_US.UTF\-8"
+LC_TIME="en_US.UTF\-8"
+LC_COLLATE="en_US.UTF\-8"
+LC_MONETARY="en_US.UTF\-8"
+LC_MESSAGES="en_US.UTF\-8"
+LC_PAPER="en_US.UTF\-8"
+LC_NAME="en_US.UTF\-8"
+LC_ADDRESS="en_US.UTF\-8"
+LC_TELEPHONE="en_US.UTF\-8"
+LC_MEASUREMENT="en_US.UTF\-8"
+LC_IDENTIFICATION="en_US.UTF\-8"
+LC_ALL=
+.P
+$ \fBlocale date_fmt\fP
+%a %b %e %H:%M:%S %Z %Y
+.P
+$ \fBlocale \-k date_fmt\fP
+date_fmt="%a %b %e %H:%M:%S %Z %Y"
+.P
+$ \fBlocale \-ck date_fmt\fP
+LC_TIME
+date_fmt="%a %b %e %H:%M:%S %Z %Y"
+.P
+$ \fBlocale LC_TELEPHONE\fP
++%c (%a) %l
+(%a) %l
+11
+1
+UTF\-8
+.P
+$ \fBlocale \-k LC_TELEPHONE\fP
+tel_int_fmt="+%c (%a) %l"
+tel_dom_fmt="(%a) %l"
+int_select="11"
+int_prefix="1"
+telephone\-codeset="UTF\-8"
+.EE
+.P
+The following example compiles a custom locale from the
+.I ./wrk
+directory with the
+.BR localedef (1)
+utility under the
+.I $HOME/.locale
+directory, then tests the result with the
+.BR date (1)
+command, and then sets the environment variables
+.B LOCPATH
+and
+.B LANG
+in the shell profile file so that the custom locale will be used in the
+subsequent user sessions:
+.P
+.EX
+$ \fBmkdir \-p $HOME/.locale\fP
+$ \fBI18NPATH=./wrk/ localedef \-f UTF\-8 \-i fi_SE $HOME/.locale/fi_SE.UTF\-8\fP
+$ \fBLOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF\-8 date\fP
+$ \fBecho "export LOCPATH=\e$HOME/.locale" >> $HOME/.bashrc\fP
+$ \fBecho "export LANG=fi_SE.UTF\-8" >> $HOME/.bashrc\fP
+.EE
+.SH SEE ALSO
+.BR localedef (1),
+.BR charmap (5),
+.BR locale (5),
+.BR locale (7)
diff --git a/man/man1/localedef.1 b/man/man1/localedef.1
new file mode 100644
index 0000000..f050592
--- /dev/null
+++ b/man/man1/localedef.1
@@ -0,0 +1,415 @@
+.\" Copyright (C) 2001 Richard Braakman
+.\" Copyright (C) 2004 Alastair McKinstry
+.\" Copyright (C) 2005 Lars Wirzenius
+.\" Copyright (C) 2014 Marko Myllynen
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.\"
+.\" This manual page was initially written by Richard Braakman
+.\" on behalf of the Debian GNU/Linux Project and anyone else
+.\" who wants it. It was amended by Alastair McKinstry to
+.\" explain new ISO/IEC 14652 elements, and amended further by
+.\" Lars Wirzenius to document new functionality (as of GNU
+.\" C library 2.3.5).
+.\"
+.TH localedef 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+localedef \- compile locale definition files
+.SH SYNOPSIS
+.SY localedef
+.RI [ options ]
+.I outputpath
+.YS
+.SY localedef
+.B \-\-add\-to\-archive
+.RI [ options ]
+.I compiledpath
+.YS
+.SY localedef
+.B \-\-delete\-from\-archive
+.RI [ options ]
+.IR localename " ..."
+.YS
+.SY localedef
+.B \-\-list\-archive
+.RI [ options ]
+.YS
+.SY localedef
+.B \-\-help
+.YS
+.SY localedef
+.B \-\-usage
+.YS
+.SY localedef
+.B \-\-version
+.YS
+.SH DESCRIPTION
+The
+.B localedef
+program reads the indicated
+.I charmap
+and
+.I input
+files,
+compiles them to a binary form quickly usable by the
+locale functions in the C library
+.RB ( setlocale (3),
+.BR localeconv (3),
+etc.),
+and places the output in
+.IR outputpath .
+.P
+The
+.I outputpath
+argument is interpreted as follows:
+.IP \[bu] 3
+If
+.I outputpath
+contains a slash character ('/'),
+it is interpreted as the name of the
+directory where the output definitions are to be stored.
+In this case,
+there is a separate output file for each locale category
+.RI ( LC_TIME ,
+.IR LC_NUMERIC ,
+and so on).
+.IP \[bu]
+If the
+.B \-\-no\-archive
+option is used,
+.I outputpath
+is the name of a subdirectory in
+.I /usr/lib/locale
+where per-category compiled files are placed.
+.IP \[bu]
+Otherwise,
+.I outputpath
+is the name of a locale and the compiled locale data is added to the
+archive file
+.IR /usr/lib/locale/locale\-archive .
+A locale archive is a memory-mapped file which contains all the
+system-provided locales;
+it is used by all localized programs when the environment variable
+.B LOCPATH
+is not set.
+.P
+In any case,
+.B localedef
+aborts if the directory in which it tries to write locale files has
+not already been created.
+.P
+If no
+.I charmapfile
+is given,
+the value
+.I ANSI_X3.4\-1968
+(for ASCII) is used by default.
+If no
+.I inputfile
+is given,
+or if it is given as a dash
+(\-),
+.B localedef
+reads from standard input.
+.SH OPTIONS
+.SS Operation-selection options
+A few options direct
+.B localedef
+to do something other than compile locale definitions.
+Only one of these options should be used at a time.
+.TP
+.B \-\-add\-to\-archive
+Add the
+.I compiledpath
+directories to the locale archive file.
+The directories should have been created by previous runs of
+.BR localedef ,
+using
+.BR \-\-no\-archive .
+.TP
+.B \-\-delete\-from\-archive
+Delete the named locales from the locale archive file.
+.TP
+.B \-\-list\-archive
+List the locales contained in the locale archive file.
+.SS Other options
+Some of the following options are sensible only for certain operations;
+generally,
+it should be self-evident which ones.
+Notice that
+.B \-f
+and
+.B \-c
+are reversed from what you might expect;
+that is,
+.B \-f
+is not the same as
+.BR \-\-force .
+.TP
+.BI \-f " charmapfile" "\fR, \fP\-\-charmap=" charmapfile
+Specify the file that defines the character set
+that is used by the input file.
+If
+.I charmapfile
+contains a slash character ('/'),
+it is interpreted as the name of the character map.
+Otherwise,
+the file is sought in the current directory
+and the default directory for character maps.
+If the environment variable
+.B I18NPATH
+is set,
+.I $I18NPATH/charmaps/
+and
+.I $I18NPATH/
+are also searched after the current directory.
+The default directory for character maps is printed by
+.BR "localedef \-\-help" .
+.TP
+.BI \-i " inputfile" "\fR, \fP\-\-inputfile=" inputfile
+Specify the locale definition file to compile.
+The file is sought in the current directory
+and the default directory for locale definition files.
+If the environment variable
+.B I18NPATH
+is set,
+.I $I18NPATH/locales/
+and
+.I $I18NPATH
+are also searched after the current directory.
+The default directory for locale definition files is printed by
+.BR "localedef \-\-help" .
+.TP
+.BI \-u " repertoirefile" "\fR, \fP\-\-repertoire\-map=" repertoirefile
+Read mappings from symbolic names to Unicode code points from
+.IR repertoirefile .
+If
+.I repertoirefile
+contains a slash character ('/'),
+it is interpreted as the pathname of the repertoire map.
+Otherwise,
+the file is sought in the current directory
+and the default directory for repertoire maps.
+If the environment variable
+.B I18NPATH
+is set,
+.I $I18NPATH/repertoiremaps/
+and
+.I $I18NPATH
+are also searched after the current directory.
+The default directory for repertoire maps is printed by
+.BR "localedef \-\-help" .
+.TP
+.BI \-A " aliasfile" "\fR, \fP\-\-alias\-file=" aliasfile
+Use
+.I aliasfile
+to look up aliases for locale names.
+There is no default aliases file.
+.TP
+.B \-\-force
+.TQ
+.B \-c
+Write the output files even if warnings were generated about the input
+file.
+.TP
+.B \-\-verbose
+.TQ
+.B \-v
+Generate extra warnings about errors that are normally ignored.
+.TP
+.B \-\-big\-endian
+Generate big-endian output.
+.TP
+.B \-\-little\-endian
+Generate little-endian output.
+.TP
+.B \-\-no\-archive
+Do not use the locale archive file,
+instead create
+.I outputpath
+as a subdirectory in the same directory as the locale archive file,
+and create separate output files for locale categories in it.
+This is helpful to prevent system locale archive updates from overwriting
+custom locales created with
+.BR localedef .
+.TP
+.B \-\-no\-hard\-links
+Do not create hard links between installed locales.
+.TP
+.BI \-\-no\-warnings= warnings
+Comma-separated list of warnings to disable.
+Supported warnings are
+.I ascii
+and
+.IR intcurrsym .
+.TP
+.B \-\-posix
+Conform strictly to POSIX.
+Implies
+.BR \-\-verbose .
+This option currently has no other effect.
+POSIX conformance is assumed if the environment variable
+.B POSIXLY_CORRECT
+is set.
+.TP
+.BI \-\-prefix= pathname
+Set the prefix to be prepended to the full archive pathname.
+By default,
+the prefix is empty.
+Setting the prefix to
+.IR foo ,
+the archive would be placed in
+.IR foo/usr/lib/locale/locale\-archive .
+.TP
+.B \-\-quiet
+Suppress all notifications and warnings,
+and report only fatal errors.
+.TP
+.B \-\-replace
+Replace a locale in the locale archive file.
+Without this option,
+if the locale is in the archive file already,
+an error occurs.
+.TP
+.BI \-\-warnings= warnings
+Comma-separated list of warnings to enable.
+Supported warnings are
+.I ascii
+and
+.IR intcurrsym .
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Print a usage summary and exit.
+Also prints the default paths used by
+.BR localedef .
+.TP
+.B \-\-usage
+Print a short usage summary and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Print the version number,
+license,
+and disclaimer of warranty for
+.BR localedef .
+.SH EXIT STATUS
+One of the following exit values can be returned by
+.BR localedef :
+.TP
+.B 0
+Command completed successfully.
+.TP
+.B 1
+Warnings or errors occurred,
+output files were written.
+.TP
+.B 4
+Errors encountered,
+no output created.
+.SH ENVIRONMENT
+.TP
+.B POSIXLY_CORRECT
+The
+.B \-\-posix
+flag is assumed if this environment variable is set.
+.TP
+.B I18NPATH
+A colon-separated list of search directories for files.
+.SH FILES
+.TP
+.I /usr/share/i18n/charmaps
+Usual default character map path.
+.TP
+.I /usr/share/i18n/locales
+Usual default path for locale definition files.
+.TP
+.I /usr/share/i18n/repertoiremaps
+Usual default repertoire map path.
+.TP
+.I /usr/lib/locale/locale\-archive
+Usual default locale archive location.
+.TP
+.I /usr/lib/locale
+Usual default path for compiled individual locale data files.
+.TP
+.I outputpath/LC_ADDRESS
+An output file that contains information about formatting of
+addresses and geography-related items.
+.TP
+.I outputpath/LC_COLLATE
+An output file that contains information about the rules for comparing
+strings.
+.TP
+.I outputpath/LC_CTYPE
+An output file that contains information about character classes.
+.TP
+.I outputpath/LC_IDENTIFICATION
+An output file that contains metadata about the locale.
+.TP
+.I outputpath/LC_MEASUREMENT
+An output file that contains information about locale measurements
+(metric versus US customary).
+.TP
+.I outputpath/LC_MESSAGES/SYS_LC_MESSAGES
+An output file that contains information about the language messages
+should be printed in,
+and what an affirmative or negative answer looks like.
+.TP
+.I outputpath/LC_MONETARY
+An output file that contains information about formatting of monetary
+values.
+.TP
+.I outputpath/LC_NAME
+An output file that contains information about salutations for persons.
+.TP
+.I outputpath/LC_NUMERIC
+An output file that contains information about formatting of nonmonetary
+numeric values.
+.TP
+.I outputpath/LC_PAPER
+An output file that contains information about settings related to
+standard paper size.
+.TP
+.I outputpath/LC_TELEPHONE
+An output file that contains information about formats to be used with
+telephone services.
+.TP
+.I outputpath/LC_TIME
+An output file that contains information about formatting of data and
+time values.
+.SH STANDARDS
+POSIX.1-2008.
+.SH EXAMPLES
+Compile the locale files for Finnish in the UTF\-8 character set
+and add it to the default locale archive with the name
+.BR fi_FI.UTF\-8 :
+.P
+.in +4n
+.EX
+localedef \-f UTF\-8 \-i fi_FI fi_FI.UTF\-8
+.EE
+.in
+.P
+The next example does the same thing,
+but generates files into the
+.I fi_FI.UTF\-8
+directory which can then be used by programs when the environment
+variable
+.B LOCPATH
+is set to the current directory (note that the last argument must
+contain a slash):
+.P
+.in +4n
+.EX
+localedef \-f UTF\-8 \-i fi_FI ./fi_FI.UTF\-8
+.EE
+.in
+.SH SEE ALSO
+.BR locale (1),
+.BR charmap (5),
+.BR locale (5),
+.BR repertoiremap (5),
+.BR locale (7)
diff --git a/man/man1/memusage.1 b/man/man1/memusage.1
new file mode 100644
index 0000000..9f38bf6
--- /dev/null
+++ b/man/man1/memusage.1
@@ -0,0 +1,262 @@
+.\" Copyright (c) 2013, Peter Schiffer <pschiffe@redhat.com>
+.\" and Copyright (C) 2014, Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.TH memusage 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+memusage \- profile memory usage of a program
+.SH SYNOPSIS
+.nf
+.BR memusage " [\fIoption\fR]... \fIprogram\fR [\fIprogramoption\fR]..."
+.fi
+.SH DESCRIPTION
+.B memusage
+is a bash script which profiles memory usage of the program,
+.IR program .
+It preloads the
+.B libmemusage.so
+library into the caller's environment (via the
+.B LD_PRELOAD
+environment variable; see
+.BR ld.so (8)).
+The
+.B libmemusage.so
+library traces memory allocation by intercepting calls to
+.BR malloc (3),
+.BR calloc (3),
+.BR free (3),
+and
+.BR realloc (3);
+optionally, calls to
+.BR mmap (2),
+.BR mremap (2),
+and
+.BR munmap (2)
+can also be intercepted.
+.P
+.B memusage
+can output the collected data in textual form, or it can use
+.BR memusagestat (1)
+(see the
+.B \-p
+option, below)
+to create a PNG file containing graphical representation
+of the collected data.
+.SS Memory usage summary
+The "Memory usage summary" line output by
+.B memusage
+contains three fields:
+.RS 4
+.TP
+\fBheap total\fR
+Sum of \fIsize\fR arguments of all
+.BR malloc (3)
+calls,
+products of arguments (\fInmemb\fR*\fIsize\fR) of all
+.BR calloc (3)
+calls,
+and sum of \fIlength\fR arguments of all
+.BR mmap (2)
+calls.
+In the case of
+.BR realloc (3)
+and
+.BR mremap (2),
+if the new size of an allocation is larger than the previous size,
+the sum of all such differences (new size minus old size) is added.
+.TP
+.B "heap peak"
+Maximum of all \fIsize\fR arguments of
+.BR malloc (3),
+all products of \fInmemb\fR*\fIsize\fR of
+.BR calloc (3),
+all \fIsize\fR arguments of
+.BR realloc (3),
+.I length
+arguments of
+.BR mmap (2),
+and
+\fInew_size\fR arguments of
+.BR mremap (2).
+.TP
+.B "stack peak"
+Before the first call to any monitored function,
+the stack pointer address (base stack pointer) is saved.
+After each function call, the actual stack pointer address is read and
+the difference from the base stack pointer computed.
+The maximum of these differences is then the stack peak.
+.RE
+.P
+Immediately following this summary line, a table shows the number calls,
+total memory allocated or deallocated,
+and number of failed calls for each intercepted function.
+For
+.BR realloc (3)
+and
+.BR mremap (2),
+the additional field "nomove" shows reallocations that
+changed the address of a block,
+and the additional "dec" field shows reallocations that
+decreased the size of the block.
+For
+.BR realloc (3),
+the additional field "free" shows reallocations that
+caused a block to be freed (i.e., the reallocated size was 0).
+.P
+The "realloc/total memory" of the table output by
+.B memusage
+does not reflect cases where
+.BR realloc (3)
+is used to reallocate a block of memory
+to have a smaller size than previously.
+This can cause sum of all "total memory" cells (excluding "free")
+to be larger than the "free/total memory" cell.
+.SS Histogram for block sizes
+The "Histogram for block sizes" provides a breakdown of memory
+allocations into various bucket sizes.
+.SH OPTIONS
+.TP
+.BI \-n\ name \fR,\ \fB\-\-progname= name
+Name of the program file to profile.
+.TP
+.BI \-p\ file \fR,\ \fB\-\-png= file
+Generate PNG graphic and store it in
+.IR file .
+.TP
+.BI \-d\ file \fR,\ \fB\-\-data= file
+Generate binary data file and store it in
+.IR file .
+.TP
+.B \-u\fR,\ \fB\-\-unbuffered
+Do not buffer output.
+.TP
+.BI \-b\ size \fR,\ \fB\-\-buffer= size
+Collect
+.I size
+entries before writing them out.
+.TP
+.B \-\-no\-timer
+Disable timer-based
+.RB ( SIGPROF )
+sampling of stack pointer value.
+.TP
+.B \-m\fR,\ \fB\-\-mmap
+Also trace
+.BR mmap (2),
+.BR mremap (2),
+and
+.BR munmap (2).
+.TP
+.B \-?\fR,\ \fB\-\-help
+Print help and exit.
+.TP
+.B \-\-usage
+Print a short usage message and exit.
+.TP
+.B \-V\fR,\ \fB\-\-version
+Print version information and exit.
+.TP
+The following options apply only when generating graphical output:
+.TP
+.B \-t\fR,\ \fB\-\-time\-based
+Use time (rather than number of function calls) as the scale for the X axis.
+.TP
+.B \-T\fR,\ \fB\-\-total
+Also draw a graph of total memory use.
+.TP
+.BI \fB\-\-title= name
+Use
+.I name
+as the title of the graph.
+.TP
+.BI \-x\ size \fR,\ \fB\-\-x\-size= size
+Make the graph
+.I size
+pixels wide.
+.TP
+.BI \-y\ size \fR,\ \fB\-\-y\-size= size
+Make the graph
+.I size
+pixels high.
+.SH EXIT STATUS
+The exit status of
+.B memusage
+is equal to the exit status of the profiled program.
+.SH BUGS
+To report bugs, see
+.UR http://www.gnu.org/software/libc/bugs.html
+.UE
+.SH EXAMPLES
+Below is a simple program that reallocates a block of
+memory in cycles that rise to a peak before then cyclically
+reallocating the memory in smaller blocks that return to zero.
+After compiling the program and running the following commands,
+a graph of the memory usage of the program can be found in the file
+.IR memusage.png :
+.P
+.in +4n
+.EX
+$ \fBmemusage \-\-data=memusage.dat ./a.out\fP
+\&...
+Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224
+ total calls total memory failed calls
+ malloc| 1 400 0
+realloc| 40 44800 0 (nomove:40, dec:19, free:0)
+ calloc| 0 0 0
+ free| 1 440
+Histogram for block sizes:
+ 192\-207 1 2% ================
+\&...
+ 2192\-2207 1 2% ================
+ 2240\-2255 2 4% =================================
+ 2832\-2847 2 4% =================================
+ 3440\-3455 2 4% =================================
+ 4032\-4047 2 4% =================================
+ 4640\-4655 2 4% =================================
+ 5232\-5247 2 4% =================================
+ 5840\-5855 2 4% =================================
+ 6432\-6447 1 2% ================
+$ \fBmemusagestat memusage.dat memusage.png\fP
+.EE
+.in
+.SS Program source
+.EX
+#include <stdio.h>
+#include <stdlib.h>
+\&
+#define CYCLES 20
+\&
+int
+main(int argc, char *argv[])
+{
+ int i, j;
+ size_t size;
+ int *p;
+\&
+ size = sizeof(*p) * 100;
+ printf("malloc: %zu\en", size);
+ p = malloc(size);
+\&
+ for (i = 0; i < CYCLES; i++) {
+ if (i < CYCLES / 2)
+ j = i;
+ else
+ j\-\-;
+\&
+ size = sizeof(*p) * (j * 50 + 110);
+ printf("realloc: %zu\en", size);
+ p = realloc(p, size);
+\&
+ size = sizeof(*p) * ((j + 1) * 150 + 110);
+ printf("realloc: %zu\en", size);
+ p = realloc(p, size);
+ }
+\&
+ free(p);
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR memusagestat (1),
+.BR mtrace (1),
+.BR ld.so (8)
diff --git a/man/man1/memusagestat.1 b/man/man1/memusagestat.1
new file mode 100644
index 0000000..906582f
--- /dev/null
+++ b/man/man1/memusagestat.1
@@ -0,0 +1,73 @@
+.\" Copyright (c) 2013, Peter Schiffer <pschiffe@redhat.com>
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.TH memusagestat 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+memusagestat \- generate graphic from memory profiling data
+.SH SYNOPSIS
+.nf
+.BR memusagestat " [\fIoption\fR]... \fIdatafile\fR [\fIoutfile\fR]"
+.fi
+.SH DESCRIPTION
+.B memusagestat
+creates a PNG file containing a graphical representation of the
+memory profiling data in the file
+.IR datafile ;
+that file is generated via the
+.I \-d
+(or
+.IR \-\-data )
+option of
+.BR memusage (1).
+.P
+The red line in the graph shows the heap usage (allocated memory)
+and the green line shows the stack usage.
+The x-scale is either the number of memory-handling function calls or
+(if the
+.I \-t
+option is specified)
+time.
+.SH OPTIONS
+.TP
+.BI \-o\ file \fR,\ \fB\-\-output= file
+Name of the output file.
+.TP
+.BI \-s\ string \fR,\ \fB\-\-string= string
+Use
+.I string
+as the title inside the output graph.
+.TP
+.B \-t\fR,\ \fB\-\-time
+Use time (rather than number of function calls) as the scale for the X axis.
+.TP
+.B \-T\fR,\ \fB\-\-total
+Also draw a graph of total memory consumption.
+.TP
+.BI \-x\ size \fR,\ \fB\-\-x\-size= size
+Make the output graph
+.I size
+pixels wide.
+.TP
+.BI \-y\ size \fR,\ \fB\-\-y\-size= size
+Make the output graph
+.I size
+pixels high.
+.TP
+.B \-?\fR,\ \fB\-\-help
+Print a help message and exit.
+.TP
+.B \-\-usage
+Print a short usage message and exit.
+.TP
+.B \-V\fR,\ \fB\-\-version
+Print version information and exit.
+.SH BUGS
+To report bugs, see
+.UR http://www.gnu.org/software/libc/bugs.html
+.UE
+.SH EXAMPLES
+See
+.BR memusage (1).
+.SH SEE ALSO
+.BR memusage (1),
+.BR mtrace (1)
diff --git a/man/man1/mtrace.1 b/man/man1/mtrace.1
new file mode 100644
index 0000000..12819c7
--- /dev/null
+++ b/man/man1/mtrace.1
@@ -0,0 +1,47 @@
+.\" Copyright (c) 2013, Peter Schiffer (pschiffe@redhat.com)
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.TH mtrace 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+mtrace \- interpret the malloc trace log
+.SH SYNOPSIS
+.nf
+.BR mtrace " [\fIoption\fR]... [\fIbinary\fR] \fImtracedata\fR"
+.fi
+.SH DESCRIPTION
+.B mtrace
+is a Perl script used to interpret and provide human readable output
+of the trace log contained in the file
+.IR mtracedata ,
+whose contents were produced by
+.BR mtrace (3).
+If
+.I binary
+is provided, the output of
+.B mtrace
+also contains the source file name with line number information
+for problem locations
+(assuming that
+.I binary
+was compiled with debugging information).
+.P
+For more information about the
+.BR mtrace (3)
+function and
+.B mtrace
+script usage, see
+.BR mtrace (3).
+.SH OPTIONS
+.TP
+.B \-\-help
+Print help and exit.
+.TP
+.B \-\-version
+Print version information and exit.
+.SH BUGS
+For bug reporting instructions, please see:
+.UR http://www.gnu.org/software/libc/bugs.html
+.UE .
+.SH SEE ALSO
+.BR memusage (1),
+.BR mtrace (3)
diff --git a/man/man1/pldd.1 b/man/man1/pldd.1
new file mode 100644
index 0000000..2677551
--- /dev/null
+++ b/man/man1/pldd.1
@@ -0,0 +1,105 @@
+.\" Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH pldd 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+pldd \- display dynamic shared objects linked into a process
+.SH SYNOPSIS
+.nf
+.BI "pldd " "pid"
+.BI pldd " option"
+.fi
+.SH DESCRIPTION
+The
+.B pldd
+command displays a list of the dynamic shared objects (DSOs) that are
+linked into the process with the specified process ID (PID).
+The list includes the libraries that have been dynamically loaded using
+.BR dlopen (3).
+.SH OPTIONS
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Display a help message and exit.
+.TP
+.B \-\-usage
+Display a short usage message and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Display program version information and exit.
+.SH EXIT STATUS
+On success,
+.B pldd
+exits with the status 0.
+If the specified process does not exist,
+the user does not have permission to access
+its dynamic shared object list,
+or no command-line arguments are supplied,
+.B pldd
+exists with a status of 1.
+If given an invalid option, it exits with the status 64.
+.SH VERSIONS
+Some other systems
+.\" There are man pages on Solaris and HP-UX.
+have a similar command.
+.SH STANDARDS
+None.
+.SH HISTORY
+glibc 2.15.
+.SH NOTES
+The command
+.P
+.in +4n
+.EX
+lsof \-p PID
+.EE
+.in
+.P
+also shows output that includes the dynamic shared objects
+that are linked into a process.
+.P
+The
+.BR gdb (1)
+.I "info shared"
+command also shows the shared libraries being used by a process,
+so that one can obtain similar output to
+.B pldd
+using a command such as the following
+(to monitor the process with the specified
+.IR pid ):
+.P
+.in +4n
+.EX
+$ \fBgdb \-ex "set confirm off" \-ex "set height 0" \-ex "info shared" \e\fP
+ \fB\-ex "quit" \-p $pid | grep \[aq]\[ha]0x.*0x\[aq]\fP
+.EE
+.in
+.SH BUGS
+From glibc 2.19 to glibc 2.29,
+.B pldd
+was broken: it just hung when executed.
+.\" glibc commit 1a4c27355e146b6d8cc6487b998462c7fdd1048f
+This problem was fixed in glibc 2.30, and the fix has been backported
+to earlier glibc versions in some distributions.
+.SH EXAMPLES
+.EX
+$ \fBecho $$\fP # Display PID of shell
+1143
+$ \fBpldd $$\fP # Display DSOs linked into the shell
+1143: /usr/bin/bash
+linux\-vdso.so.1
+/lib64/libtinfo.so.5
+/lib64/libdl.so.2
+/lib64/libc.so.6
+/lib64/ld\-linux\-x86\-64.so.2
+/lib64/libnss_files.so.2
+.EE
+.SH SEE ALSO
+.BR ldd (1),
+.BR lsof (1),
+.BR dlopen (3),
+.BR ld.so (8)
diff --git a/man/man1/sprof.1 b/man/man1/sprof.1
new file mode 100644
index 0000000..88c52c9
--- /dev/null
+++ b/man/man1/sprof.1
@@ -0,0 +1,282 @@
+.\" Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH sprof 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+sprof \- read and display shared object profiling data
+.SH SYNOPSIS
+.nf
+.BR sprof " [\fIoption\fP]... \fIshared-object-path\fP \
+[\fIprofile-data-path\fP]"
+.fi
+.SH DESCRIPTION
+The
+.B sprof
+command displays a profiling summary for the
+shared object (shared library) specified as its first command-line argument.
+The profiling summary is created using previously generated
+profiling data in the (optional) second command-line argument.
+If the profiling data pathname is omitted, then
+.B sprof
+will attempt to deduce it using the soname of the shared object,
+looking for a file with the name
+.I <soname>.profile
+in the current directory.
+.SH OPTIONS
+The following command-line options specify the profile output
+to be produced:
+.TP
+.B \-\-call\-pairs
+.TQ
+.B \-c
+Print a list of pairs of call paths for the interfaces exported
+by the shared object,
+along with the number of times each path is used.
+.TP
+.B \-\-flat\-profile
+.TQ
+.B \-p
+Generate a flat profile of all of the functions in the monitored object,
+with counts and ticks.
+.TP
+.B \-\-graph
+.TQ
+.B \-q
+Generate a call graph.
+.P
+If none of the above options is specified,
+then the default behavior is to display a flat profile and a call graph.
+.P
+The following additional command-line options are available:
+.TP
+.B \-\-help
+.TQ
+.B \-?
+Display a summary of command-line options and arguments and exit.
+.TP
+.B \-\-usage
+Display a short usage message and exit.
+.TP
+.B \-\-version
+.TQ
+.B \-V
+Display the program version and exit.
+.SH STANDARDS
+GNU.
+.SH EXAMPLES
+The following example demonstrates the use of
+.BR sprof .
+The example consists of a main program that calls two functions
+in a shared object.
+First, the code of the main program:
+.P
+.in +4n
+.EX
+$ \fBcat prog.c\fP
+#include <stdlib.h>
+\&
+void x1(void);
+void x2(void);
+\&
+int
+main(int argc, char *argv[])
+{
+ x1();
+ x2();
+ exit(EXIT_SUCCESS);
+}
+.EE
+.in
+.P
+The functions
+.IR x1 ()
+and
+.IR x2 ()
+are defined in the following source file that is used to
+construct the shared object:
+.P
+.in +4n
+.EX
+$ \fBcat libdemo.c\fP
+#include <unistd.h>
+\&
+void
+consumeCpu1(int lim)
+{
+ for (unsigned int j = 0; j < lim; j++)
+ getppid();
+}
+\&
+void
+x1(void) {
+ for (unsigned int j = 0; j < 100; j++)
+ consumeCpu1(200000);
+}
+\&
+void
+consumeCpu2(int lim)
+{
+ for (unsigned int j = 0; j < lim; j++)
+ getppid();
+}
+\&
+void
+x2(void)
+{
+ for (unsigned int j = 0; j < 1000; j++)
+ consumeCpu2(10000);
+}
+.EE
+.in
+.P
+Now we construct the shared object with the real name
+.IR libdemo.so.1.0.1 ,
+and the soname
+.IR libdemo.so.1 :
+.P
+.in +4n
+.EX
+$ \fBcc \-g \-fPIC \-shared \-Wl,\-soname,libdemo.so.1 \e\fP
+ \fB\-o libdemo.so.1.0.1 libdemo.c\fP
+.EE
+.in
+.P
+Then we construct symbolic links for the library soname and
+the library linker name:
+.P
+.in +4n
+.EX
+$ \fBln \-sf libdemo.so.1.0.1 libdemo.so.1\fP
+$ \fBln \-sf libdemo.so.1 libdemo.so\fP
+.EE
+.in
+.P
+Next, we compile the main program, linking it against the shared object,
+and then list the dynamic dependencies of the program:
+.P
+.in +4n
+.EX
+$ \fBcc \-g \-o prog prog.c \-L. \-ldemo\fP
+$ \fBldd prog\fP
+ linux\-vdso.so.1 => (0x00007fff86d66000)
+ libdemo.so.1 => not found
+ libc.so.6 => /lib64/libc.so.6 (0x00007fd4dc138000)
+ /lib64/ld\-linux\-x86\-64.so.2 (0x00007fd4dc51f000)
+.EE
+.in
+.P
+In order to get profiling information for the shared object,
+we define the environment variable
+.B LD_PROFILE
+with the soname of the library:
+.P
+.in +4n
+.EX
+$ \fBexport LD_PROFILE=libdemo.so.1\fP
+.EE
+.in
+.P
+We then define the environment variable
+.B LD_PROFILE_OUTPUT
+with the pathname of the directory where profile output should be written,
+and create that directory if it does not exist already:
+.P
+.in +4n
+.EX
+$ \fBexport LD_PROFILE_OUTPUT=$(pwd)/prof_data\fP
+$ \fBmkdir \-p $LD_PROFILE_OUTPUT\fP
+.EE
+.in
+.P
+.B LD_PROFILE
+causes profiling output to be
+.I appended
+to the output file if it already exists,
+so we ensure that there is no preexisting profiling data:
+.P
+.in +4n
+.EX
+$ \fBrm \-f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile\fP
+.EE
+.in
+.P
+We then run the program to produce the profiling output,
+which is written to a file in the directory specified in
+.BR LD_PROFILE_OUTPUT :
+.P
+.in +4n
+.EX
+$ \fBLD_LIBRARY_PATH=. ./prog\fP
+$ \fBls prof_data\fP
+libdemo.so.1.profile
+.EE
+.in
+.P
+We then use the
+.B sprof \-p
+option to generate a flat profile with counts and ticks:
+.P
+.in +4n
+.EX
+$ \fBsprof \-p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile\fP
+Flat profile:
+\&
+Each sample counts as 0.01 seconds.
+ % cumulative self self total
+ time seconds seconds calls us/call us/call name
+ 60.00 0.06 0.06 100 600.00 consumeCpu1
+ 40.00 0.10 0.04 1000 40.00 consumeCpu2
+ 0.00 0.10 0.00 1 0.00 x1
+ 0.00 0.10 0.00 1 0.00 x2
+.EE
+.in
+.P
+The
+.B sprof \-q
+option generates a call graph:
+.P
+.in +4n
+.EX
+$ \fBsprof \-q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile\fP
+\&
+index % time self children called name
+\&
+ 0.00 0.00 100/100 x1 [1]
+[0] 100.0 0.00 0.00 100 consumeCpu1 [0]
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ 0.00 0.00 1/1 <UNKNOWN>
+[1] 0.0 0.00 0.00 1 x1 [1]
+ 0.00 0.00 100/100 consumeCpu1 [0]
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ 0.00 0.00 1000/1000 x2 [3]
+[2] 0.0 0.00 0.00 1000 consumeCpu2 [2]
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ 0.00 0.00 1/1 <UNKNOWN>
+[3] 0.0 0.00 0.00 1 x2 [3]
+ 0.00 0.00 1000/1000 consumeCpu2 [2]
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+.EE
+.in
+.P
+Above and below, the "<UNKNOWN>" strings represent identifiers that
+are outside of the profiled object (in this example, these are instances of
+.IR main() ).
+.P
+The
+.B sprof \-c
+option generates a list of call pairs and the number of their occurrences:
+.P
+.in +4n
+.EX
+$ \fBsprof \-c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile\fP
+<UNKNOWN> x1 1
+x1 consumeCpu1 100
+<UNKNOWN> x2 1
+x2 consumeCpu2 1000
+.EE
+.in
+.SH SEE ALSO
+.BR gprof (1),
+.BR ldd (1),
+.BR ld.so (8)
diff --git a/man/man1/time.1 b/man/man1/time.1
new file mode 100644
index 0000000..eb80248
--- /dev/null
+++ b/man/man1/time.1
@@ -0,0 +1,329 @@
+.\" Copyright Andries Brouwer, 2000
+.\" Some fragments of text came from the time-1.7 info file.
+.\" Inspired by kromJx@crosswinds.net.
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.TH time 1 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+time \- time a simple command or give resource usage
+.SH SYNOPSIS
+.B time
+.RI [ option \~.\|.\|.\&] " command " [ argument \~.\|.\|.]
+.SH DESCRIPTION
+The
+.B time
+command runs the specified program
+.I command
+with the given arguments.
+When
+.I command
+finishes,
+.B time
+writes a message to standard error giving timing statistics
+about this program run.
+These statistics consist of (i) the elapsed real time
+between invocation and termination, (ii) the user CPU time
+(the sum of the
+.I tms_utime
+and
+.I tms_cutime
+values in a
+.I "struct tms"
+as returned by
+.BR times (2)),
+and (iii) the system CPU time (the sum of the
+.I tms_stime
+and
+.I tms_cstime
+values in a
+.I "struct tms"
+as returned by
+.BR times (2)).
+.P
+Note: some shells (e.g.,
+.BR bash (1))
+have a built-in
+.B time
+command that provides similar information on the usage of time and
+possibly other resources.
+To access the real command, you may need to specify its pathname
+(something like
+.IR /usr/bin/time ).
+.SH OPTIONS
+.TP
+.B \-p
+When in the POSIX locale, use the precise traditional format
+.IP
+.in +4n
+.EX
+"real %f\enuser %f\ensys %f\en"
+.EE
+.in
+.IP
+(with numbers in seconds)
+where the number of decimals in the output for %f is unspecified
+but is sufficient to express the clock tick accuracy, and at least one.
+.SH EXIT STATUS
+If
+.I command
+was invoked, the exit status is that of
+.IR command .
+Otherwise, it is 127 if
+.I command
+could not be found, 126 if it could be found but could not be invoked,
+and some other nonzero value (1\[en]125) if something else went wrong.
+.SH ENVIRONMENT
+The variables
+.BR LANG ,
+.BR LC_ALL ,
+.BR LC_CTYPE ,
+.BR LC_MESSAGES ,
+.BR LC_NUMERIC ,
+and
+.B NLSPATH
+are used for the text and formatting of the output.
+.B PATH
+is used to search for
+.IR command .
+.SH GNU VERSION
+Below a description of the GNU 1.7 version of
+.BR time .
+Disregarding the name of the utility, GNU makes it output lots of
+useful information, not only about time used, but also on other
+resources like memory, I/O and IPC calls (where available).
+The output is formatted using a format string that can be specified
+using the
+.I \-f
+option or the
+.B TIME
+environment variable.
+.P
+The default format string is:
+.P
+.in +4n
+.EX
+%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
+%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
+.EE
+.in
+.P
+When the
+.I \-p
+option is given, the (portable) output format is used:
+.P
+.in +4n
+.EX
+real %e
+user %U
+sys %S
+.EE
+.in
+.\"
+.SS The format string
+The format is interpreted in the usual printf-like way.
+Ordinary characters are directly copied, tab, newline,
+and backslash are escaped using \et, \en, and \e\e,
+a percent sign is represented by %%, and otherwise %
+indicates a conversion.
+The program
+.B time
+will always add a trailing newline itself.
+The conversions follow.
+All of those used by
+.BR tcsh (1)
+are supported.
+.P
+.B "Time"
+.TP
+.B %E
+Elapsed real time (in [hours:]minutes:seconds).
+.TP
+.B %e
+(Not in
+.BR tcsh (1).)
+Elapsed real time (in seconds).
+.TP
+.B %S
+Total number of CPU-seconds that the process spent in kernel mode.
+.TP
+.B %U
+Total number of CPU-seconds that the process spent in user mode.
+.TP
+.B %P
+Percentage of the CPU that this job got, computed as (%U + %S) / %E.
+.P
+.B "Memory"
+.TP
+.B %M
+Maximum resident set size of the process during its lifetime, in Kbytes.
+.TP
+.B %t
+(Not in
+.BR tcsh (1).)
+Average resident set size of the process, in Kbytes.
+.TP
+.B %K
+Average total (data+stack+text) memory use of the process,
+in Kbytes.
+.TP
+.B %D
+Average size of the process's unshared data area, in Kbytes.
+.TP
+.B %p
+(Not in
+.BR tcsh (1).)
+Average size of the process's unshared stack space, in Kbytes.
+.TP
+.B %X
+Average size of the process's shared text space, in Kbytes.
+.TP
+.B %Z
+(Not in
+.BR tcsh (1).)
+System's page size, in bytes.
+This is a per-system constant, but varies between systems.
+.TP
+.B %F
+Number of major page faults that occurred while the process was running.
+These are faults where the page has to be read in from disk.
+.TP
+.B %R
+Number of minor, or recoverable, page faults.
+These are faults for pages that are not valid but which have
+not yet been claimed by other virtual pages.
+Thus the data
+in the page is still valid but the system tables must be updated.
+.TP
+.B %W
+Number of times the process was swapped out of main memory.
+.TP
+.B %c
+Number of times the process was context-switched involuntarily
+(because the time slice expired).
+.TP
+.B %w
+Number of waits: times that the program was context-switched voluntarily,
+for instance while waiting for an I/O operation to complete.
+.P
+.B "I/O"
+.TP
+.B %I
+Number of filesystem inputs by the process.
+.TP
+.B %O
+Number of filesystem outputs by the process.
+.TP
+.B %r
+Number of socket messages received by the process.
+.TP
+.B %s
+Number of socket messages sent by the process.
+.TP
+.B %k
+Number of signals delivered to the process.
+.TP
+.B %C
+(Not in
+.BR tcsh (1).)
+Name and command-line arguments of the command being timed.
+.TP
+.B %x
+(Not in
+.BR tcsh (1).)
+Exit status of the command.
+.SS GNU options
+.TP
+.BI "\-f " format ", \-\-format=" format
+Specify output format, possibly overriding the format specified
+in the environment variable TIME.
+.TP
+.B "\-p, \-\-portability"
+Use the portable output format.
+.TP
+.BI "\-o " file ", \-\-output=" file
+Do not send the results to
+.IR stderr ,
+but overwrite the specified file.
+.TP
+.B "\-a, \-\-append"
+(Used together with \-o.) Do not overwrite but append.
+.TP
+.B "\-v, \-\-verbose"
+Give very verbose output about all the program knows about.
+.TP
+.B "\-q, \-\-quiet"
+Don't report abnormal program termination (where
+.I command
+is terminated by a signal) or nonzero exit status.
+.\"
+.SS GNU standard options
+.TP
+.B "\-\-help"
+Print a usage message on standard output and exit successfully.
+.TP
+.B "\-V, \-\-version"
+Print version information on standard output, then exit successfully.
+.TP
+.B "\-\-"
+Terminate option list.
+.SH BUGS
+Not all resources are measured by all versions of UNIX,
+so some of the values might be reported as zero.
+The present selection was mostly inspired by the data
+provided by 4.2 or 4.3BSD.
+.P
+GNU time version 1.7 is not yet localized.
+Thus, it does not implement the POSIX requirements.
+.P
+The environment variable
+.B TIME
+was badly chosen.
+It is not unusual for systems like
+.BR autoconf (1)
+or
+.BR make (1)
+to use environment variables with the name of a utility to override
+the utility to be used.
+Uses like MORE or TIME for options to programs
+(instead of program pathnames) tend to lead to difficulties.
+.P
+It seems unfortunate that
+.I \-o
+overwrites instead of appends.
+(That is, the
+.I \-a
+option should be the default.)
+.P
+Mail suggestions and bug reports for GNU
+.B time
+to
+.IR bug\-time@gnu.org .
+Please include the version of
+.BR time ,
+which you can get by running
+.P
+.in +4n
+.EX
+time \-\-version
+.EE
+.in
+.P
+and the operating system
+and C compiler you used.
+.\" .SH AUTHORS
+.\" .TP
+.\" .IP "David Keppel"
+.\" Original version
+.\" .IP "David MacKenzie"
+.\" POSIXization, autoconfiscation, GNU getoptization,
+.\" documentation, other bug fixes and improvements.
+.\" .IP "Arne Henrik Juul"
+.\" Helped with portability
+.\" .IP "Francois Pinard"
+.\" Helped with portability
+.SH SEE ALSO
+.BR bash (1),
+.BR tcsh (1),
+.BR times (2),
+.BR wait3 (2)