我在哪里可以获得UNIX系统调用列表?

时间:2010-04-20 04:06:26

标签: unix freebsd system-calls

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

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

8 个答案:

答案 0 :(得分:7)

man 2 syscalls

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

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

答案 1 :(得分:4)

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

开始
man 2 intro

这就是我在UNIX中的开始。当时我们没有花哨的互联网......

答案 2 :(得分:3)

官方,权威IEEE标准。 1003.1 / Single UNIX Specification(UNIX 2004)联机帮助页,请参阅:

可以在“系统接口”下或链接下找到full list of functions (system interfaces)。我还想利用这个机会来插入我的Development / Coding Search自定义搜索引擎,其中包括并严重偏向单一UNIX规范/ IEEE标准。 1003.1。例如,对fopencloseunix等标准搜索进行了促销,以确保权威文档的结果位于最顶层。在查询前添加“man”会对结果进行大量加权,从而有利于IEEE Std。 1003.1手册页,如man findman freeman inttypes.h等,尽管大多数查询都应该支持IEEE标准。 1003.1即使没有添加“man”(如果不是,请输入bad query并告诉我)。

答案 3 :(得分:2)

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

POSIX.1定义了一组标准的操作系统接口,但是没有操作系统将自己局限于那些。通常,您具有BSD和SYSV风格,这些风格具有略微不同的语义。但是,现在所谓的系统调用实际上是准库函数。

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

 /usr/include/syscall.h

答案 4 :(得分:2)

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

答案 5 :(得分:1)

你应该做的是拿起W. Richard Stevens的“Unix环境中的高级编程”。这是关于如何编写类Unix操作系统的经典书。这本书很旧,MacOs / iPhoneO是Unix的最传统风格,但这本书是学习基础知识并了解API应该如何使用的好方法。请查看Amazon

答案 6 :(得分:0)

答案 7 :(得分:0)

在大多数环境中,ls /usr/man/2/可以解决问题,但可能是/usr/local/man/usr/share/man甚至是/usr/local/share/man

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