代码之家  ›  专栏  ›  技术社区  ›  Oleg Razgulyaev

在哪里可以获得unix系统调用的列表?

  •  9
  • Oleg Razgulyaev  · 技术社区  · 16 年前

    unix上的一些系统调用列表在哪里?

    这不是我最初的问题,但无论如何还是要谢谢:)

    8 回复  |  直到 14 年前
        1
  •  7
  •   Ken Bloom    16 年前

    man 2 syscalls

    除此之外,您还可以查看/usr/include/sys/syscall.h(在我的系统上,它仅仅是/usr/include/bits/syscall.h)。这是在libc构建时从内核系统调用列表生成的。

    您还可以将Linux内核源代码grep用于syscall_define。(我不是bsd专家,但我认为freebsd中的等价物是syscall_模块)

        2
  •  4
  •   Duncan    16 年前

    阅读 法恩 手册。对于系统调用,从

    man 2 intro
    

    这就是我在unix中的开始。我们那时没有漂亮的互联网…

        3
  •  3
  •   Michael Aaron Safyan    16 年前

    有关官方权威的ieee标准1003.1/单一unix规范(unix 2004)手册页,请参见:

    full list of functions (system interfaces) 可在“系统接口”下或链接处找到。我也想借此机会 Development / Coding Search 自定义搜索引擎,包括并严重偏向于单一的unix规范/ieee标准1003.1。例如,标准搜索 fopen , close , unix 等等,进行促销以确保权威文档的结果处于最顶端。在查询前添加“man”会对结果产生很大的影响,有利于ieee std.1003.1手册页,如 man find , man free , man inttypes.h ,等等,尽管大多数查询应该支持ieee std.1003.1,即使没有添加“man”(如果没有,请键入 bad query 告诉我)。

        4
  •  2
  •   caskey    16 年前

    具体是什么操作系统?手册第2节记录了系统调用,但是根据您所使用的unix的风格,完整的集合会有所不同。

    posix.1定义了一组标准的操作系统接口,但是没有一个操作系统仅限于这些接口。一般来说,您有bsd和sysv两种风格,它们的语义稍有不同。然而,现在假定的系统调用实际上是准库函数。

    唯一正确的答案是需要对文件进行特定的安装和检查

     /usr/include/syscall.h
    
        5
  •  2
  •   Daniel Rudy    14 年前

    在freebsd中,查找系统调用的最佳位置是文件/usr/src/sys/sys/syscall.h。

        6
  •  1
  •   Armentage    16 年前

    你真正应该做的是拿起一份w.richard stevens的《unix环境中的高级编程》。这就是 经典 关于如何像操作系统一样编程unix的书。这本书很旧,macos/iphoneos是unix的一个不同的最传统的风格,但是这本书是一个很好的方法来学习基本知识,并了解api应该如何使用。查看 Amazon

        8
  •  0
  •   Lucas Jones    16 年前

    在大多数环境中, ls /usr/man/2/ 会成功的,尽管可能 /usr/local/man /usr/share/man 甚至 /usr/local/share/man .

    编辑:甚至可能有 MANPATH 指向正确位置的环境变量。