noble (2) intro.2.gz

Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       intro - システムコールの説明

説明

       マニュアルの  2 章では Linux のシステムコールについて説明している。 システムコールは Linux カーネルへのエ
       ントリーポイントである。 通常は、システムコールは直接起動される訳ではなく、  ほとんどのシステムコールには
       対応する  C ライブラリのラッパー関数があり、 そのラッパー関数がシステムコールを呼び出すのに必要な処理を実
       行する。 そのため、システムコールを呼び出すのは通常のライブラリ関数を呼び出すのと 同じように見える。

       多くの場合、 C ライブラリのラッパー関数が行うのは以下のことだけである。

       *  引数と一意なシステムコール番号をカーネルが期待するレジスターにコピーする

       *  カーネルがシステムコールの実際の処理を行う時点でカーネルモードに入る

       *  カーネルが CPU をユーザーモードに返した際にシステムコールがエラー番号を返したいれば errno を設定する

       しかし、ラッパー関数がこれ以上のことを行う場合もいくつかある。例えば、カーネルモードに入る前に引数に対す
       る前処理を実行したり、システムコールが返した値に対する後処理を行うなどである。このような場合、セクション
       2 のマニュアルページでは、基本的に、C ライブラリ API インターフェース (通常は GNU C ライブラリのもの)  と
       生のシステムコールの両方の詳細をできるだけ説明しようとする。ほとんどの場合、メインとなる「説明」では C ラ
       イブラリのインターフェースに焦点をあてて説明し、システムコールでの差分については「注意」のセクションに説
       明がある。

       Linux のシステムコールのリストについては syscalls(2)  を参照のこと。

返り値

       エラーの場合、ほとんどのシステムコールは負のエラー番号を返す  (具体的には errno(3) で説明されている定数の
       いずれかを負にした値を返す)。 C ライブラリのラッパーは呼び出し元からこうした詳細を隠蔽している。 システム
       コールが負の値を返した場合、ラッパーは絶対値を errno 変数にコピーし、ラッパーの返り値として -1 を返す。

       成功時にシステムコールが返す値はシステムコールにより異なる。  多くのシステムコールは成功時に 0 を返すが、
       成功時に 0 以外の値を返すシステムコールもある。 詳細は個々のマニュアルページで説明されている。

       マニュアルページの「書式」の節に規定されたヘッダーファイルから関数の定義を 得るために、プログラマが機能検
       査マクロを定義しなければならない場合がある  (機能検査マクロの定義が必要な場合、これらの機能検査マクロの定
       義は 「どの」ヘッダーファイルのインクルードよりも前で行われなければならない)。 このような場合には、必要な
       マクロがマニュアルページで説明されている。                       機能検査マクロのさらなる情報については、
       feature_test_macros(7)  を参照のこと。

準拠

       この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が 使用されている。  standards(7)
       を参照のこと。

注意

   直接呼び出す
       ほとんどの場合、直接システムコールを呼び出す必要はないが、  場合によっては標準 C ライブラリに適切な関数が
       実装されていないこともある。 このような場合は、プログラマは syscall(2)   を使って、自分でシステムコールを
       呼び出さなければならない。 過去には、 _syscall(2)  マクロの一つを使ってシステムコールの呼び出すこともでき
       た。

   著者と著作権
       著者と著作権に関しては各マニュアルページのソースのヘッダーを参照すること。 これらはページごとに異なる可能
       性があることに注意してほしい。

関連項目

       _syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7),
       feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7),
       shm_overview(7), signal(7), socket(7), standards(7), system_data_types(7), symlink(7), sysvipc(7),
       time(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。