2017-12-05 19 views
1

私は、POSIXが準拠しているシステムに存在すべき一連の関数を定義していることを知っています。これらには、read(),write()printf()など、「libc」関数として知られている多くのものがあります。POSIX標準では、read()のような関数がどのような呼び出し規約に従うべきかを指定していますか?

しかし、POSIXはそれらの呼び出し規約を強制しますか、またはOS実装者が選択するのは最大ですか?

+2

特定のABIに従ってください。 POSIXはABIに反対しません。 –

答えて

4

しかし、POSIXはそれらの呼び出し規則を強制しますか?

いいえ、POSIXは移植性を目指しています。呼び出し規約は、サブルーチンを呼び出すときにスタックとレジスタをどのように使用するかを指定するアーキテクチャに大きく依存しています。 POSIXが特定の呼び出し規則に強制を行った場合、それはもはや普遍的には適用できないか、あるいは可能な各アーキテクチャに対して呼び出し規則を定義する必要がありますが、これは不可能です。

関連する問題