0

realpath私のLinuxボックスのmanページには次のように書かれています:

VERSIONS
       On Linux this function appeared in libc 4.5.21.

それはどういう意味ですか?どのlibcを参照していますか-「Linux libc」? - また、さまざまな libc フレーバーに一致するリストはどこにありますか?この関数や他の関数にリンクするための最小要件を確認できますか?

GLIBC のバージョンは 2.13 で、4.5.21 よりかなり低いですが、glibc に関するウィキペディアのページには次のように書かれています。

1990 年代初頭、Linux カーネルの開発者は glibc をフォークしました。「Linux libc」と呼ばれる彼らのフォークは、何年もの間別々に維持され、バージョン 2 から 5 がリリースされました。

... と

Linux libc の最後に使用されたバージョンは、内部名 (soname) libc.so.5 を使用していました。これに続いて、Linux の glibc 2.x は soname libc.so.6 を使用します。

これは、どの glibc もメジャー バージョンが 5 を超える「Linux libc」と同等であることを意味しますか?

これまたはそのバージョンの "libc" を参照しているマニュアル ページは他にもあるため、これらrealpathは問題全体の 1 つの例にすぎません。

注:私が構築しているコードはLinuxに限定されていません。そのため、特定の機能が利用可能かどうかを検出する明確な方法が必要です。

4

1 に答える 1

2

glibc は、バージョン 2.x でしたが、古い libc3/4/5 のバージョン管理スキームとの互換性のために、長年にわたって「libc6」と呼ばれていました。いずれにせよ、Linux システムの man ページは非常に役立ちますが、必ずしも標準的ではありません。glibc は man ページの代わりに「info」システムを使用するため、glibc の機能については、man ページよりもglibc のマニュアルを参照する方がよい場合があります。realpath 関数のバグ カテゴリは、歴史的な文脈では興味深いものですが、libc5 システムをターゲットにしている場合を除き (そうではないことは確かです)、特に役に立ちません。

于 2011-05-05T15:08:44.663 に答える