ओपन सी फंक्शन के लिए प्रोग्रामर का मैनपेज कहां है?


16

मैं डेबियन 8 (जेसी) का उपयोग कर रहा हूं और मैं ओपन के लिए मैनपेज पढ़ने के लिए गया। इसके बजाय मुझे एक चेतावनी मिली:

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

मेरे पास मैनपेज-देव पैकेज स्थापित है, इसलिए प्रोग्रामर मैनपेज (मैन 3) कहां खुला है?


1
आप भी उपयोग कर सकते हैं apropos, या man --names-onlyएक के साथ --regexया --wildcard। देखते हैं man man
एक CVn

C में, openफ़ंक्शन नहीं है, यह एक सिस्टम कॉल है। यह एक पांडित्य अंतर है, लेकिन यहां प्रासंगिकता यह है कि सिस्टम कॉल खंड 2 में हैं, जबकि पुस्तकालय कार्य खंड 3 में हैं
mpez0

जवाबों:


18

आप man 2 openसी लाइब्रेरी इंटरफ़ेस के लिए चाहते हैं , नहीं man 3 open। यह वास्तव में manpages-dev(नहीं manpage-dev) है। man 3 openएक पर्ल मैनुअल पेज देता है।

# 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

मैनपेज अनुभागों का वर्णन स्वयं मैनपेज़ में किया जाता है। man manविभिन्न वर्गों और सामान्य सामग्री को देखने के लिए शेल सत्र में प्रवेश करें :

   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]

धारा 2 में सिस्टम कॉल का वर्णन किया गया है जहां धारा 3 में पुस्तकालय दिनचर्या शामिल है। लायब्रेरी रूटीन जो सिस्टम कॉल के लिए केवल रैपर हैं, उन्हें अनुभाग 2 में भी वर्णित किया गया है।


10

इसके आगे के कारण को स्पष्ट करने के लिए, मैनपेज धारा 2 में है क्योंकि यह एक सिस्टम कॉल है (सी लाइब्रेरी के बजाय कर्नेल के भाग के रूप में अधिक या कम सीधे लागू किया जाता है)।

यह अंतर कुछ हद तक मनमाना लग सकता है, विशेष रूप से पुराने सिस्टम कॉल के साथ जो अब लाइब्रेरी फ़ंक्शंस हैं (फोर्क अभी भी सेक्शन 2 में है, हालांकि यह अब क्लोन के लिए एक आवरण है), जब तक कि आप पहले से ही इसे नहीं जानते। सामान्य तौर पर, पहले खंड 3 में देखें, फिर खंड 2 का प्रयास करें यदि आप इसे नहीं ढूंढ सकते हैं या ऐसा लगता है कि यह प्रासंगिक नहीं हो सकता है। साथ ही, धारा 2 में कुछ फ़ंक्शन आंतरिक या अप्रचलित लिनक्स-विशिष्ट कार्य हैं जिन्हें सामान्य कार्यक्रमों (जैसे getdents, gettid) द्वारा नहीं बुलाया जाना चाहिए।

आप मैनपेज़ का एक सेट प्राप्त करने के लिए मैनपेज़-पॉज़िक्स-देव पैकेज भी स्थापित कर सकते हैं जो कि लिनक्स-विशिष्ट जानकारी रखने के बजाय एक पोर्टेबल दृष्टिकोण से लिखा गया है। इस पैकेज में, सी फ़ंक्शन के लिए प्रदान किए गए सभी मैनपेज़ धारा 3 पी में हैं।


4

जब मैं निश्चित होता हूं कि एक निश्चित मैनपेज किस अनुभाग में है, तो मैं -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.

आदमी के लिए मैनपेज में उदाहरण से:

   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

इस स्थिति में, इस मेनपेज नाम के साथ सभी उपलब्ध पृष्ठों की पूरी सूची को एक कमांड का उपयोग करके देखना उपयोगी है:

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

परिणाम वही होगा:

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

या सभी मौजूदा manpages की सामग्री को देखें और इस प्रकार आवश्यक पहचान करें:

$ man -a open
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.