システムコール番号はマシンごとに異なりますか?プロセッサによって異なりますか? i586とi386の間に違いがあるという意味ですか?
マシンごとに異なる場合は、マシン番号をどのように知ることができますか?
一般的な場所は/usr/include/asm*ですが、そのフォルダは存在しません。
答え1
ほとんどのオペレーティングシステムでは、番号は次のとおりです。/usr/include/sys/syscall.h
通常は電話をかけることができますsyscall(number, rest of parameters)
。
一部の「システムコール」はsyscalls.hにはないかもしれません。これは、複数のシステムコールインターフェイスが、一連のコールからコールを選択するためにサブ番号を使用する単一のシステムコールとして実装されるためです。
システムコール番号は、特定のオペレーティングシステムの特定のバージョンにのみ有効です。
Solaris には安定したシステムコールインタフェースはありませんが、libc の上に安定したインタフェースがあります。 POSIX は意図的にシステムコールとライブラリ機能を区別しないため、これは完全に POSIX と互換性があります。