9

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

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

4

8 回答 8

8

man 2 syscalls

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

您还可以 grep SYSCALL_DEFINE 的 Linux 内核源代码。(我不是 BSD 专家,但我认为 FreeBSD 中的等价物是 SYSCALL_MODULE)

于 2010-04-20T04:27:52.013 回答
5

阅读精美手册。对于系统调用,从

man 2 intro

这就是我开始使用 UNIX 的方式。那时我们没有花哨的互联网......

于 2010-04-20T04:26:35.560 回答
4

对于官方、权威的 IEEE Std。1003.1 / 单一 UNIX 规范 (UNIX 2004) 联机帮助页,请参见:

完整的功能列表(系统接口)可以在“系统接口”或链接中找到。我还想借此机会插入我的开发/编码搜索自定义搜索引擎,其中包括并严重偏向单一 UNIX 规范/IEEE 标准。1003.1。例如,对fopencloseunix等进行标准搜索时,会进行升级,以确保权威文档的结果位于最顶端。在查询前添加“man”会大大增加结果的权重,有利于 IEEE 标准。1003.1 手册页,如man findman freeman inttypes.h等,尽管大多数查询应该支持 IEEE Std。1003.1 即使没有添加“man”(如果不是,请键入错误查询并告诉我)。

于 2010-04-21T05:35:56.880 回答
2

究竟是什么操作系统?手册第 2 节记录了系统调用,但是完整的集合取决于您使用的 UNIX 风格。

POSIX.1 定义了一套标准的操作系统接口,但是没有操作系统将自己限制在这些接口上。一般来说,您有 BSD 和 SYSV 风格,它们的语义略有不同。然而,现在所谓的系统调用实际上是准库函数。

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

 /usr/include/syscall.h
于 2010-04-20T05:20:07.073 回答
2

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

于 2012-07-12T15:06:34.693 回答
1

你真正应该做的是拿起 W. Richard Stevens 的“Unix 环境中的高级编程”。这是一本关于如何编写类 Unix 操作系统的经典书籍。这本书很旧,MacOs/iPhoneOs 是不同的最传统的 Unix 风格,但是这本书是学习基础知识和了解 API 应该如何使用的好方法。在亚马逊上查看

于 2010-04-20T04:40:19.797 回答
0

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

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

于 2010-04-20T04:27:36.533 回答