Programcı'nın açık C İşlevi için kılavuz sayfası nerede?


16

Ben debian8 (jessie) kullanıyorum ve açmak için manpage okumak için gittim. bunun yerine bir uyarı aldım:

$ man 3 open
No manual entry for open in section 3
See 'man 7 undocumented' for help when manual pages are not available.

Ben manpage-dev paketi yüklü, bu yüzden programcılar manpage (adam 3) açık nerede?


1
Ayrıca kullanabilir aproposveya man --names-onlybiriyle --regexveya --wildcard. Bkz man man.
CVn

C'de openbir işlev değil, bir sistem çağrısıdır. Bu bilgiçlikten uzak bir farktır, ancak buradaki ilişki, sistem çağrılarının 2. bölümde, kütüphane işlevleri ise 3. bölümde yer almaktadır.
mpez0

Yanıtlar:


18

man 2 openC kütüphanesi arayüzünü istiyorsunuz , değil man 3 open. Gerçekten de öyle manpages-dev(değil manpage-dev). man 3 openPerl el kitabını verir.

# Show the corresponding source groff file
man -w 2 open   
/usr/share/man/man2/open.2.gz

# Show which package this file belongs to
dpkg -S /usr/share/man/man2/open.2.gz
manpages-dev: /usr/share/man/man2/open.2.gz

# Or use dlocate to show which package this file belongs to
dlocate /usr/share/man/man2/open.2.gz
manpages-dev: /usr/share/man/man2/open.2.gz

14

Manpage bölümleri, manpajların kendisinde açıklanmaktadır. man manÇeşitli bölümleri ve genel içeriği görmek için bir kabuk oturumu girin :

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages  and  conventions), e.g.
       man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

Bölüm 2, bölüm 3'ün kütüphane rutinlerini kapsadığı sistem çağrılarını açıklar. Sadece sistem çağrıları için sarıcı olan kütüphane rutinleri bölüm 2'de de açıklanmaktadır.


10

Bunun nedenini daha da açıklığa kavuşturmak için, manpage bölüm 2'de yer alır çünkü bir sistem çağrısıdır (C kütüphanesi yerine çekirdeğin bir parçası olarak az çok doğrudan uygulanır).

Bu ayrım, özellikle şu anda kütüphane işlevleri olan eski sistem çağrıları ile (çatal artık hala klon için bir sarıcı olmasına rağmen hala 2. bölümde)) biraz keyfi görünebilir. Genel olarak, önce 3. bölüme bakın, sonra bulamazsanız veya alakalı olmayabilir gibi görünüyorsa 2. bölümü deneyin. Ayrıca, bölüm 2'deki bazı işlevler, normal programlar (örneğin getdents, gettid) tarafından çağrılmaması gereken dahili veya eski linux'a özgü işlevlerdir.

Linux'a özgü bilgiler yerine taşınabilir bir perspektiften yazılmış bir dizi sayfa elde etmek için manpages-posix-dev paketini de kurabilirsiniz. Bu pakette, C fonksiyonları için sağlanan tüm sayfalar bölüm 3p'de bulunmaktadır.


4

Belirli bir kılavuzun hangi bölümde olduğundan emin olmadığımda, -a seçeneğini kullanıyorum.

   -a, --all
          By  default,  man  will  exit  after  displaying the most suitable manual page it finds.
          Using this option forces man to display all the manual pages with names that  match  the
          search criteria.

Man için man sayfasındaki örnekten:

   man -a intro
       Display,  in  succession, all of the available intro manual pages
       contained within the manual.  It is possible to quit between
       successive displays or skip any of them.

3

Bu durumda, komutlardan birini kullanarak bu sayfa adıyla kullanılabilir tüm sayfaların tam listesini görmek yararlı olur:

$ man -k ^open$
$ apropos -r ^open$
$ man -f open
$ whatis open

Sonuç aynı olacaktır:

open (1)             - start a program on a new virtual terminal (VT).
open (2)             - open and possibly create a file or device

Veya mevcut tüm sayfaların içeriğini görüntüleyin ve gerekli olanları belirleyin:

$ man -a open
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.