UNIX のシステム コールのリストはどこにありますか?
これは私の最初の質問ではありませんでしたが、とにかくありがとう:)
man 2 syscalls
それとは別に、/usr/include/sys/syscall.h (私のシステムでは単に #include /usr/include/bits/syscall.h) を見ることができます。これは、libc ビルド時にカーネル syscall リストから生成されます。
SYSCALL_DEFINE の Linux カーネル ソースを grep することもできます。(私は BSD の専門家ではありませんが、FreeBSD で同等のものは SYSCALL_MODULE だと思います)
ファインマニュアルをお読みください。システム コールの場合は、
man 2 intro
それが私が UNIX を使い始めた方法です。当時は派手なインターネットはありませんでした...
公式で権威ある IEEE Std. 1003.1 / Single UNIX Specification (UNIX 2004) マンページについては、以下を参照してください。
機能 (システム インターフェース)の完全なリストは、「システム インターフェース」の下またはリンクにあります。また、Single UNIX Specification / IEEE Std . 1003.1。たとえば、fopen、close、unixなどの標準的な検索では、信頼できるドキュメントからの結果が一番上に表示されるようにプロモーションが行われます。クエリの前に「man」を追加すると、IEEE Std. man find、man free、man inttypes.hなどの 1003.1 man ページなど、ほとんどのクエリは IEEE Std を優先する必要があります。「man」を追加しなくても1003.1(そうでない場合は、悪いクエリを入力して教えてください)。
FreeBSD では、システム コールが何であるかを探すのに最適な場所は、ファイル /usr/src/sys/sys/syscall.h です。これは FreeBSD 9.0 上にあります
正確には、どのオペレーティングシステムですか?man セクション 2 に syscall が記載されていますが、完全なセットは使用している UNIX のフレーバーによって異なります。
POSIX.1 は、オペレーティング システム インターフェイスの標準セットを定義しますが、オペレーティング システム自体がそれらだけに制限されることはありません。一般に、セマンティクスがわずかに異なる BSD と SYSV のフレーバーがあります。ただし、現在想定されているシステムコールは、実際には準ライブラリ関数です。
唯一の真の答えは、ファイルの特定のインストールと調査を必要とします
/usr/include/syscall.h
あなたが実際にすべきことは、W. Richard Stevens による「Unix 環境での高度なプログラミング」のコピーを入手することです。これは、Unix ライクな OS のプログラミング方法に関する古典的な本です。この本は古く、MacOs/iPhoneOs は Unix の最も伝統的なフレーバーとは異なりますが、この本は基本を学び、API がどのように使用されるべきかを理解するのに最適な方法です。アマゾンでチェックしてね
ほとんどの環境では、またはまたは でさえありls /usr/man/2/
ますが、 でうまくいきます。/usr/local/man
/usr/share/man
/usr/local/share/man
MANPATH
編集:適切な場所を指す環境変数さえあるかもしれません。