私が知っている限り、例えばライブラリ関数を呼び出すと、システムコールがprintf
呼び出されます。write(2)
私の質問は:複数のシステムコールを呼び出すことができるライブラリ呼び出しはありますか?つまり、システムコールを行います。いつも図書館の通貨に1:1マッピングしますか?
答え1
システムコールからライブラリコールへ、またはその逆に1:1のマッピングはありません。
たとえば、ほとんどの(すべてではありませんが)算術関数(例えば sin
) は、次のシステムコールを呼び出しません。posix_spawn
複数のシステムコールを使用します。
一方、一部のシステムコールは次のとおりです。init_module
そのライブラリ呼び出しはなく、「手動で」呼び出す必要があります。syscall
。
答え2
反例getpwent
(サム)多くのシステムコールを呼び出す