Trang chủ của Lập trình viên cho Chức năng C mở ở đâu?


16

Tôi đang sử dụng debian8 (jessie) và tôi đã đi tìm đọc trang hướng dẫn để mở. thay vào đó tôi nhận được một cảnh báo:

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

Tôi đã cài đặt gói manpage-dev, vậy manpage lập trình (man 3) được mở ở đâu?


1
Bạn cũng có thể sử dụng apropos, hoặc man --names-onlyvới một trong --regexhoặc --wildcard. Xem man man.
một CVn

Trong C, openkhông phải là một chức năng, đó là một cuộc gọi hệ thống. Đó là một sự khác biệt về phạm vi, nhưng sự liên quan ở đây là các cuộc gọi hệ thống nằm trong phần 2, trong khi các chức năng của thư viện nằm ở phần 3.
mpez0

Câu trả lời:


18

Bạn muốn man 2 opencho giao diện thư viện C, không man 3 open. Nó thực sự là trong manpages-dev(không manpage-dev). man 3 openđưa ra một trang hướng dẫn Perl.

# 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

Các phần trang được mô tả trong chính các trang. Nhập man manvào một phiên shell để xem các phần khác nhau và nội dung chung:

   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]

Phần 2 mô tả các cuộc gọi hệ thống trong đó phần 3 bao gồm các thói quen của thư viện. Các thói quen thư viện chỉ đơn giản là trình bao bọc cho các cuộc gọi hệ thống cũng được mô tả trong phần 2.


10

Chỉ cần làm rõ lý do cho điều này hơn nữa, trang này nằm trong phần 2 vì đây là một cuộc gọi hệ thống (được thực hiện ít nhiều trực tiếp như một phần của kernel, thay vì thư viện C).

Sự khác biệt này có vẻ hơi độc đoán, đặc biệt với các cuộc gọi hệ thống cũ hiện là chức năng thư viện (fork vẫn nằm trong phần 2 mặc dù bây giờ nó là trình bao bọc cho bản sao), trừ khi bạn đã biết. Nói chung, trước tiên hãy xem phần 3, sau đó thử phần 2 nếu bạn không thể tìm thấy nó hoặc có vẻ như nó có thể không liên quan. Ngoài ra, một số chức năng trong phần 2 là các chức năng dành riêng cho linux đã lỗi thời hoặc không được gọi bởi các chương trình thông thường (ví dụ: getdents, gettid).

Bạn cũng có thể cài đặt gói manpages-posix-dev để có được một tập hợp các trang được viết từ phối cảnh di động thay vì chứa thông tin cụ thể của linux. Trong gói này, tất cả các trang được cung cấp cho các hàm C đều nằm trong phần 3p.


4

Khi tôi không chắc chắn trong phần nào của một trang chủ nào đó, tôi sử dụng tùy chọn -a.

   -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.

Từ ví dụ trong trang dành cho người đàn ông:

   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

Trong tình huống này, rất hữu ích để xem toàn bộ danh sách tất cả các trang có sẵn với tên trang này bằng cách sử dụng một trong các lệnh:

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

Kết quả sẽ giống nhau:

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

Hoặc xem nội dung của tất cả các trang hiện có và do đó xác định được yêu cầu:

$ man -a open
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.