0

私はそれreadがシステムコールであることを知っています。しかし、私が読んman 2 and man 3 だことを読んだとき、それは私に異なる説明を示しています。だから、readライブラリ関数とシステムコールがあるのではないかと思います。このような場合read、cプログラムで使用する場合、コンパイラーが読み取りをlibrary関数と見なすかsystem call、この混乱について説明してください。

4

2 に答える 2

6

そうではありません。システムコールは、ライブラリ関数と同じようにlibc(C標準ライブラリ)に存在します。libcでのシステムコールの実装は、カーネルを呼び出すシステム固有のメソッドを呼び出す単なる「スタブ」です。

于 2012-05-17T15:17:00.370 に答える
2

Linuxを使用していると思います。そのプラットフォームでは、マンページread(2)はLinuxシステムコールについて説明し、POSIXマンページがインストールされている場合はread(3)のPOSIX仕様について説明します。POSIXはシステムコールとライブラリ関数の違いを指定していないためread、後者はカテゴリに含まれます。3

readlibcには、システムコール(薄いラッパー)が1つだけあります。

于 2012-05-17T15:20:28.337 に答える