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/ に書かれている。