一个库调用可以调用多个系统调用吗?

一个库调用可以调用多个系统调用吗?

据我所知,例如,调用库函数printf会调用write(2)系统调用。

我的问题是:是否有一个库调用可以调用多个系统调用?换句话说:进行系统调用总是将 1:1 映射到库调用?

答案1

从系统调用到库调用不存在 1:1 的映射,反之亦然。

例如,大多数(如果不是全部)算术函数(例如 sin) 不调用任何系统调用;其他如posix_spawn使用多个系统调用。

另一方面,一些系统调用,例如init_module没有任何相应的库调用,需要通过“手动”调用syscall

答案2

反例getpwent(3)调用许多系统调用

相关内容