是syscall(2)标准的一部分吗?
问题描述:
系统调用(2)似乎不是POSIX或C标准库的一部分。它是否是任何标准的一部分?是syscall(2)标准的一部分吗?
是否所有的libc实现都实现了系统调用(2)?如果它不是任何标准(如POSIX)的一部分,是否所有libc实现都提供了系统调用(2),这只是一个约定?
答
正在搜索POSIX在线收益率没有结果系统调用。
涂抹离线版本也不会。
POSIX并不真正关心系统调用与纯粹的用户空间函数本身。 (它在介绍中提到它只关心标准化函数的语义,并不关心这些函数是否包含系统调用。)
答
我不这么认为,因为system call的概念非常具体。
(我猜的 - 但真的不知道 - 这里面的Windows可选的“POSIX”的接口可能没有syscall(2)
)
然而,过去从20世纪80年代Unix实现了一些syscall(2)
事情。
即使在Linux上,“系统调用”在平台之间相当不适合移植。例如。一些体系结构通过'socketcall'多路复用,有些则不。 – o11c