Skip to Content
21st Century C, 2nd Edition
book

21st Century C, 2nd Edition

by Ben Klemens
May 2025
Intermediate to advanced
408 pages
5h 55m
Japanese
O'Reilly Media, Inc.
Content preview from 21st Century C, 2nd Edition

第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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Learn C Programming - Second Edition

Learn C Programming - Second Edition

Jeff Szuhay
Tiny C Projects

Tiny C Projects

Daniel Gookin

Publisher Resources

ISBN: 9798341650848