Откуда берутся страницы руководства по libc?
Они не могут быть взяты из glibc, поскольку немного отличаются от API glibc.
Одним из примеров является справочная страница mmap. Он описывает флаг MAP_UNINITIALIZED
.
Но этого флага нет в glibc. Glibc не хочет поддерживать этот флаг, потому что они говорят, что это только ядро . Если вы посмотрите исходный код glibc, вы также увидите, что они никогда и нигде не определяют этот макрос.
Так откуда же берутся страницы руководства по libc, если они не взяты из glibc?
По крайней мере, на моей странице руководства по mmap(2) вверху написано: «Руководство программиста Linux».
Если вы не хотите знать, где находится справочная страница (или программа и т. д.), позвоните whereis
:
$ whereis mmap
mmap: /usr/share/man/man2/mmap.2.gz /usr/share/man/man3/mmap.3posix.gz
Если вам нужно узнать, откуда взялся этот файл, предполагая, что вы установили его с помощью apt
, попробуйте apt-file
:
$ apt-file search mmap.2.gz
manpages-de-dev: /usr/share/man/de/man2/mmap.2.gz
manpages-dev: /usr/share/man/man2/mmap.2.gz
manpages-fr-dev: /usr/share/man/fr/man2/mmap.2.gz
manpages-ja-dev: /usr/share/man/ja/man2/mmap.2.gz
manpages-nl-dev: /usr/share/man/nl/man2/mmap.2.gz
manpages-ru-dev: /usr/share/man/ru/man2/mmap.2.gz
Затем вы можете показать метаданные пакета с помощью apt status
:
$ apt show manpages-dev
Package: manpages-dev
Version: 5.10-1
Priority: optional
Section: doc
Source: manpages
Maintainer: Dr. Tobias Quathamer <[email protected]>
Installed-Size: 4,037 kB
Depends: manpages
Suggests: man-browser
Breaks: libattr1-dev (<< 1:2.4.47-3), libbsd-dev (<< 0.8.4-1), manpages (<< 5.09-2)
Replaces: libattr1-dev (<< 1:2.4.47-3), libbsd-dev (<< 0.8.4-1)
Homepage: https://www.kernel.org/doc/man-pages/
Tag: devel::doc, made-of::man, role::documentation
Download-Size: 2,309 kB
APT-Manual-Installed: no
APT-Sources: http://deb.debian.org/debian bullseye/main amd64 Packages
Description: Manual pages about using GNU/Linux for development
These man pages describe the Linux programming interface, including
these two sections:
2 = Linux system calls.
3 = Library calls (note that a more comprehensive source of information
may be found in the glibc-doc and glibc-doc-reference packages).
Это приведет вас к URL-адресу: https://www.kernel.org/doc/man-pages/
.
Фактический репозиторий: https://git.kernel.org/pub/scm/docs/man-pages/