INTRO(2) |
Linux Programmer's Manual |
INTRO(2) |
名前
intro -システムコールの説明
説明
マニュアルの 2 章では Linux のシステムコールについて説明している。システムコールは Linux カーネルへのエントリポイントである。通常は、システムコールは直接起動される訳ではなく、ほとんどのシステムコールには対応する 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),
svipc(7),
symlink(7),
time(7)
この文書について
この man ページは Linux
man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。