第13章 図書館 図書館
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
もし本当に何かを学びたかったら、もっとレコードを聴くだろう。
そして私も、私たちも、あなたもそうする。
ザ・ハイヴス、"Untutored Youth"
この章では、あなたの生活をより楽にしてくれるライブラリをいくつか取り上げる。
私の印象では、C言語のライブラリは年々衒学的でなくなってきている。10年前の典型的なライブラリは、作業に必要な最低限のツールセットを提供し、その基本から便利でプログラマフレンドリーなバージョンを構築することを期待していた。典型的なライブラリーは、メモリーの割り当てをすべて自分で行うことを要求していた。なぜなら、勝手にメモリーを取ってくるのはライブラリーの役目ではないからだ。逆に、この章で紹介するライブラリはすべて、cURLのcurl_easy_... 関数や、SQLiteの単一の関数でデータベーストランザクションのすべての面倒なステップを実行するような、「簡単な」インタフェースを提供している。作業を完了させるために中間ワークスペースが必要であれば、それを実行するだけだ。使っていて楽しいのだ。
ここでは、ある程度標準的で非常に一般化されたライブラリから始め、SQLite、GNU Scientific Library、libxml2、libcURLなど、より特殊な目的のために私が気に入っているライブラリをいくつか紹介する。あなたがC言語を何に使っているかは分からないが、これらのライブラリは、広く適用できるタスクを実行するための、親切で信頼できるシステムだ。
グリブ
標準ライブラリが埋めなければならないものを多く残していたことを考えれば、そのギャップを埋めるライブラリが最終的に進化するのは当然のことだ。GLibは、CompSciの1年生に合格するのに十分な基本的な計算点を実装しており、あらゆる場所に移植され(WindowsのPOSIX非対応版でさえ)、現時点では信頼できるほど安定している。
GLibのサンプルコードはすでにいくつかあげたので、ここではあげない:
-
例2-2では、リンクリストを簡単に紹介している。
-
テストハーネス、"単体テスト "にある。
-
ユニコード・ツール、"ユニコード "内
-
ハッシュ、"汎用構造体"に記載
-
テキストファイルをメモリに読み取り、Perl互換の正規表現を使用する。
次のページでは、GLibがPOSIXとWindowsの両方でmmap 、「巨大なデータセットのためのmmapの使用」に貢献していることを紹介する。
マウスとウィンドウのプログラムを書いている場合、マウスとキーボードのイベントをキャッチしてディスパッチするイベントループが必要になる。POSIXと非POSIX(つまりWindows)システムで正しいことをするファイルユーティリティがある。構成ファイル用のシンプルなパーサーや、より複雑な処理用の軽量なレキシカルスキャナーがある。などなど。
ポジックス
POSIX標準は、標準Cライブラリにいくつかの便利な関数を追加している。POSIXがどれほど普及しているかを考えると、これらの関数は知っておく価値がある。ここでは、特に便利だと思われる2つの部分、正規表現のパースとファイルのメモリーへのマッピングについて、使用上の注意を述べておこう。
正規表現の解析
正規表現とは、(数字の後に1つ以上の文字が続く)や(数字-カンマ-スペース-数字、行には他に何もない)のようなパターンをテキストで表現する手段である。基本的な正規表現では、これらは ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access