UNIX上的某些系统调用列表在哪里?
这不是我原来的问题,但无论如何,谢谢:)
答案 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。例如,对fopen,close,unix等标准搜索进行了促销,以确保权威文档的结果位于最顶层。在查询前添加“man”会对结果进行大量加权,从而有利于IEEE Std。 1003.1手册页,如man find,man free,man 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
环境变量指向正确的位置。