【问题标题】:UNIX System Call Listing?UNIX 系统调用列表?
【发布时间】:2011-06-13 06:02:52
【问题描述】:

我有一个任务,我需要在 UNIX 中使用一些系统调用,比如 mktime() 和 fnmatch(),来完成一些操作。我们只给出了手册页的名称来查找函数。

现在,这对于分配的目的来说很好。但是以后做 UNIX 编程时,我可能不知道确切的名字(如果不知道 fnmatch 的名字,我永远不会知道它的存在)。

所以问题是:我怎样才能获得所有 UNIX 系统功能的完整列表?我真的不在乎它是分类还是排序(虽然它会很好),但我'想让列表包含描述,以便搜索。这样,当我需要一个函数时,我可以做一些搜索来找到潜在的候选者,然后我可以帮助他们找到确切的用法。

【问题讨论】:

  • 如果您对此很认真,请购买Advanced Programming In a Unix Environment, Second Edition ...这就是低级网络和IPC编程对我来说亮起的时候。我对这本书的评价不够高,这是迄今为止我读过的最好的技术书籍(关于任何主题)。
  • 请注意,mktime 和 fnmatch 不是系统调用。它们是库函数。 Unix 术语对这两种类型的调用有所不同。它们看起来与 C 程序员相似,但在系统处理它们的方式以及在手册的哪个部分找到它们时有所不同。
  • 谢谢 Thomas,我的意思是说(我的目标是系统调用和库函数)。

标签: unix operating-system manpage


【解决方案1】:

还有一个有用的实用程序叫做“apropos”

$ whatis apropos
apropos (1)          - search the manual page names and descriptions


$ apropos filename
...
fnmatch (3)          - match filename or pathname
...

【讨论】:

  • 好的,我决定使用 apropos 并可能围绕它构建一个 GUI,因为它的输出......充其量是混乱的。不过我想知道,有没有合适的选择?我在手册页中看不到任何内容,如果我使用“apropos -r”,我会得到一个“未知选项”。我正在专门寻找一种方法而不是或搜索,即“apropos 文件名匹配”比“apropos 文件名”给出更多的结果 - 我希望“apropos 文件名匹配”只给出与两者“文件名”和“匹配”
  • 还应该有一个适当的手册页。在我的系统上,您正在寻找“-a”标志。 "apropos -a filename match" 只返回匹配两者的项目。如果您正在寻找更高级的用途,您可以查看正则表达式,因为 apropos 也接受。
【解决方案2】:

系统调用记录在man 文档的第 2 节中。根据您的 Unix 版本,您应该能够在 man 数据目录中找到这些页面。

在Linux上,这个目录是/usr/share/man/man2;您的 Unix 版本可能不同。 man man 也应该告诉你其他部分的内容。

【讨论】:

  • 这是一个正确的答案,但请注意,每个不同的 UNIX 系统的系统调用可能不同...
  • 谢谢,我知道了。我主要在 Mac OS X 和一些 Linux 变体上工作。到目前为止,我还没有发现任何问题,但我肯定正在寻找它们。
【解决方案3】:

我曾经保留一份part of "The Authorized Guide to Version 3 of the Single UNIX Specification" 的打印副本 - 该表格显示了各种不同标准的调用可用性,这对于支持多个目标非常有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2010-11-03
    • 2015-09-24
    • 1970-01-01
    • 2023-03-14
    • 2023-03-14
    • 2012-12-20
    • 2011-06-09
    相关资源
    最近更新 更多