質問: [glibcとシステムコールラッパーについて] Cライブラリであるglibcとwrite(2)などのシステムコールラッパーの関係性が理解できません。 [理解している点] ・glibcは、printfの定義を提供する(write(2)を呼び出すように書かれている) ・printf関数内にwrite(2)(システムコールラッパー)呼び出しが記述されていて、write(2)が最終的にトラップ命令(int0x80)を実行する [理解できない点] glibcはシステムコールラッパーであるwrite(2)の処理内容を定義しているのかどうか。つまり、glibcは「write(2)がトラップ命令を実行する」ということまで定義しているのか、それとも、「write(2)がトラップ命令を実行する」という定義(writeの定義)はOSによって提供されているものなのかが理解できません。 回答よろしくお願いします。
回答: はい、システムコールラッパーは、 「右から左にそのままカーネルに処理をまわす」 ものです。 ですから、システムコールラッパーの仕様は、完全にOSのカーネルの仕様になっています。 逆に glibc にある関数は、OSの仕様からは独立しています。