2017-08-22 5 views
0

x86-64やARMなどのアーキテクチャでは、socket(2),accept(2),bind(2)の代わりにsocketcall()システムコールがありません。は、x86-64のsocketcall()がscoket、accept、bindに翻訳されていますか?

socketcall()を64ビットシステムで使用する32ビットプログラムを実行すると、システムによって自動的にsocketcall()が適切なシステムコールに変換されますか?

+0

*私はsocketcall() '使用する32ビットプログラムを実行した場合、' ... *なぜあなたは、このようなシステムコールを作っています直接?あなたは 'WSAStartup()'への呼び出しが移植可能であると期待しますか? –

答えて

1

どのような意味で「システム翻訳」ですか? 32ビットバイナリ用のシステムコールがある場合、64ビットシステム上のcompat syscallテーブルは、一致するシステムコールを提供すると想定されます。そのシステムコールの内部は実装の裁量に委ねられています。実際にはまっすぐにアップして、他のシステムコールを呼び出すこともあれば、カーネル内のより深いものを呼び出すかもしれません。ネイティブの32ビットカーネルとまったく同じかもしれません。それは正確に読者のための運動として残っているように見えますか

を考え出す

関連する問題