GNU/Linux >> Linux の 問題 >  >> Linux

Linux でのライブラリ呼び出しとシステム呼び出しの違いは何ですか?

「ライブラリ呼び出し」のようなものは実際にはありません。共有ライブラリにリンクされている関数を呼び出すことができます。これは、呼び出す関数の場所を決定するために、実行時にライブラリ パスが参照されることを意味します。

システム コールは、カーネルによって処理される低レベルのカーネル コールです。


man man と入力すると シェルに、マニュアル セクションのリストが表示されます

<ブロック引用>

2 システムコール (カーネルが提供する関数)

3 ライブラリ呼び出し (プログラム ライブラリ内の関数)

たとえば、chmod が見つかります。 マニュアルのセクション 2 で man chmod と入力すると .そして fprintf セクション 3.


システム コールは、カーネルによって直接処理されます。

ライブラリ呼び出しは、動的 (または静的にリンクされた) ライブラリによって処理されます。ライブラリ呼び出しを行うプログラムは、呼び出しが機能する前に、まずそのライブラリをインポートする必要があります。ライブラリ コール自体は、システム コールを使用する場合があります。

カーネルでは提供されない追加機能や使いやすさを提供するために、システム コールの「フロントエンド」としてライブラリが提供されることがあります。


Linux
  1. InnoDBとMyISAMの違いは何ですか?

  2. Linuxのlocateコマンドとfindコマンドの違いは何ですか

  3. env と set (Mac OS X または Linux) の違いは何ですか?

  1. Linuxコンテナとイメージの違いは何ですか?

  2. Linux での「検索」と「検索」の違いは何ですか?

  3. カーネルでのありそうな呼び出しとありそうもない呼び出しの違いは何ですか?

  1. procfs と sysfs の違いは何ですか?

  2. ls と l はどう違いますか?

  3. Unix、Linux、BSD、GNU の違いは何ですか?