May 14, 2008

[自分メモ]C言語でリストとかハッシュとか

JavaやPythonなど、豊富なライブラリを持った言語を普段使っていると、C言語で開発するのがとても不便に感じられます。文字列処理の仕組みが貧弱であることに加えて、ListやHashtableなど、便利なデータ型が用意されていないからです。腕に自信がある方であれば自分で実装するのも良いと思いますが、私のようなヘタれプログラマにとっては、品質、パフォーマンス、工数などを考慮すると、やはり実績のあるライブラリが欲しくなります。

そんな時に便利なオープンソースのライブラリを2つ紹介します。

まずはGnome/GTKで利用されているGLibです。GUI向けの仕組みだけでなく、ListやHashtableなど便利なデータ構造、さらには文字列、日付、XMLをあつかうモジュールなど様々なユーティリティが提供されていて汎用的に使うことができます。

もうひとつはapache Webサーバプロジェクトで使われているApache Portable Runtime (APR) です。こちらもApacheとは独立して使うことができます。GLibに比べると小規模でドキュメントも少ないですが、メモリの確保、解放をメモリプールでまとめて管理できるという仕組みがあります。普通のC言語ではmalloc等で確保したメモリは、ポインタを1つ1つ覚えておいて確実に解放する必要がありますが、aprではメモリが欲しいときはあらかじめ作成したメモリプールから切り出し、解放はメモリプールの単位でまとめて行う、という手順になるため、メモリの管理が少し楽になります。(さらにいうとApacheモジュールの中で使う場合はメモリプールの作成、解放をApache自身が行ってくれるため、プログラマはメモリの解放漏れを一切気にする必要が無くなります。)

matssaku at 00:33│Comments(0)TrackBack(0)clip!C 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔