1

Red Hat 8.0 に新しい syscall を追加しようとしていますが、メカニズムのいくつかの側面について混乱しています。私はこのガイドに従ってきました: http://www.linuxjournal.com/article/3326entry.Sでは、およびの syscall テーブルを更新する手順が詳しく説明されていますunistd.h

ただし、この情報から、syscall が実装されている場所をコンパイラが実際にどのように検出するかはわかりません。明らかに#includes に関連するものがありますが、インクルードが作成されている兆候を見つけることも、コード内の多くのシステムコールを見つけることもできません。システムコールが見つかるようにするにはどうすればよいですか?

4

1 に答える 1

5

C ライブラリは、たまたまシステム コールのように見える関数を提供します。実際には、C ライブラリ関数が呼び出され、システム コールが行われます。

新しいシステム コールを追加する場合、簡単に使用できるようにするには、それを C ライブラリに追加して再コンパイルする必要があります。

または、C ライブラリが提供する syscall 関数とマクロ (syscall と _syscall) を使用できます。

man syscall詳細を表示するには、 とを試しman _syscallてください。

于 2009-11-03T03:02:43.670 に答える