私はそれread
がシステムコールであることを知っています。しかし、私が読んman 2 and man 3
だことを読んだとき、それは私に異なる説明を示しています。だから、read
ライブラリ関数とシステムコールがあるのではないかと思います。このような場合read
、cプログラムで使用する場合、コンパイラーが読み取りをlibrary
関数と見なすかsystem call
、この混乱について説明してください。
質問する
289 次
2 に答える
6
そうではありません。システムコールは、ライブラリ関数と同じようにlibc(C標準ライブラリ)に存在します。libcでのシステムコールの実装は、カーネルを呼び出すシステム固有のメソッドを呼び出す単なる「スタブ」です。
于 2012-05-17T15:17:00.370 に答える
2
Linuxを使用していると思います。そのプラットフォームでは、マンページread(2)
はLinuxシステムコールについて説明し、POSIXマンページがインストールされている場合はread(3)
のPOSIX仕様について説明します。POSIXはシステムコールとライブラリ関数の違いを指定していないためread
、後者はカテゴリに含まれます。3
read
libcには、システムコール(薄いラッパー)が1つだけあります。
于 2012-05-17T15:20:28.337 に答える