개방형 C 기능에 대한 프로그래머 매뉴얼 페이지는 어디에 있습니까?

개방형 C 기능에 대한 프로그래머 매뉴얼 페이지는 어디에 있습니까?

저는 debian8(jessie)을 사용하고 있으며 open에 대한 매뉴얼 페이지를 찾으러갔습니다. 대신 나는 경고를 받았습니다.

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

맨페이지-dev 패키지를 설치했는데 열 수 있는 프로그래머의 맨페이지(man 3)는 어디에 있나요?

답변1

man 2 open대신 C 라이브러리 인터페이스가 필요합니다 man 3 open. 실제로는 그렇지 manpages-dev않습니다 manpage-dev. man 3 openPerl 매뉴얼 페이지가 제공됩니다.

# 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

답변2

맨페이지 섹션은 맨페이지 자체에 설명되어 있습니다. 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에서는 시스템 호출 래퍼인 라이브러리 루틴도 설명합니다.

답변3

그 이유를 더 명확히 하기 위해 맨페이지는 섹션 2에 있습니다. 이는 시스템 호출(C 라이브러리가 아닌 커널의 일부로 거의 직접 구현됨)이기 때문입니다.

이러한 구별은 특히 현재 라이브러리 함수인 이전 시스템 호출의 경우 약간 임의적으로 보일 수 있습니다(fork는 현재 복제된 래퍼이지만 여전히 섹션 2에 있음). 일반적으로 Part 3를 먼저 확인하고, 찾을 수 없거나 관련성이 없을 것 같으면 Part 2를 시도해 보세요. 또한 섹션 2의 일부 기능은 일반 프로그램(예: getdents, gettid)에서 호출해서는 안 되는 내부 기능이거나 더 이상 사용되지 않는 Linux 관련 기능입니다.

또한 manpages-posix-dev 패키지를 설치하여 Linux 관련 정보를 포함하는 대신 이식 가능한 관점에서 작성된 매뉴얼 페이지 세트를 얻을 수도 있습니다. 이 패키지의 C 함수에 대해 제공된 모든 맨페이지는 섹션 3p에 있습니다.

답변4

이 경우 다음 명령 중 하나를 사용하여 이 맨페이지 이름이 포함된 사용 가능한 모든 페이지의 전체 목록을 보는 것이 유용합니다.

$ 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

또는 기존 맨페이지의 내용을 모두 검토하여 필요한 사항을 결정하세요.

$ man -a open

관련 정보