【问题标题】:What is the difference between multiple man pages of the same command?同一命令的多个手册页之间有什么区别?
【发布时间】:2016-08-15 20:34:35
【问题描述】:

我开始学习 C / C++ 的套接字编程,并检查手册页中的绑定、侦听等功能。

当我在手册页之间导航时,我注意到在某些情况下,同一个系统调用有多个手册页,例如套接字()

http://man7.org/linux/man-pages/man2/socket.2.html

http://man7.org/linux/man-pages/man3/socket.3p.html

http://man7.org/linux/man-pages/man7/socket.7.html

在这些手册中,我的 linux 机器上出现的是第一个(socket(2))。

我注意到带有 3p 后缀的一个标题为“POSIX 程序员手册”,其余两个标题为“Linux 程序员手册”。函数原型和用法是相同的(据我了解)。

我的问题是:同一个系统调用的两个不同版本的Linux程序员手册的目的是什么,括号之间的数字是什么意思(socket(2),socket(3p),socket(7)) ?

【问题讨论】:

    标签: c++ c linux sockets manpage


    【解决方案1】:

    手册页按部分组织,每个部分都有自己的主题。查看man 的手册页,尝试运行man man,它列出了所有可用的部分:

    1. 可执行程序或 shell 命令
    2. 系统调用(内核提供的函数)
    3. 库调用(程序库中的函数)
    4. 特殊文件(通常在 /dev 中找到)
    5. 文件格式和约定,例如 /etc/passwd
    6. 游戏
    7. 杂项(包括宏包和约定),例如人(7),格罗夫(7)
    8. 系统管理命令(通常仅适用于 root)
    9. 内核例程 [非标准]

    对于socket的例子,“socket(2)”是操作系统内核提供的系统调用,“socket(3)”是库提供的POSIX接口,“socket(7)”是一个关于套接字主题的一般文档。你可以看到这三个都有不同的内容。

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 2014-11-12
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2010-12-16
      • 2017-12-30
      • 1970-01-01
      相关资源
      最近更新 更多