Tag List for C言語

ライブラリ

ソフトウェアを開発する際、システムコール以外にライブラリ関数を活用することになります。 ライブラリ関数とは、ライブラリ(library)に収められている関数であり、「/lib」配下などにファイルとして格納されています。 C言語の入門書に必ず出てくる、printf関数やscanf関数などがライブラリ関数です。 メインプログラムはライブラリとリンクすることで、、その関数を呼び出すことができるようになります。 ライブラリ関数は、その内部でシステムコールを行っているのもあれば、ライブラリ関数だけで完結しているものもあります。 例えば、文字列もしくは数値を指定の書式に変換して画面(標準出力)に出力するprintf関数は、その内部でwriteというシステムコールを使っています。 逆に、strlen関数は文字列の長さを返すライブラリ関数ですが、その内部ではシステムコールを使っていません。 特定の機能を持ったプログラムを、他のプログラムから利用できるようにライブラリにまとめることで、プログラミングの効率が向上します。

API

API(Application Programming Interface)とは、アプリケーションから利用できる、OSやプログラミング言語で用意されたライブラリなどの機能の入り口(インターフェイス)のことです。 例えば、C言語のライブラリのAPIは関数やマクロであり、カーネルのAPIはシステムコールとなります。 当然、APIは自作することもできます。 自作のモジュールが他のモジュールに関数を提供するケースを考えた場合、他のモジュールに公開する関数がAPIとなります。 APIとシステムコールを同意だと捉えている方も多いようですが、上記のとおり両者の意味は異なります。