第I部 基礎編:実践的Cプログラミングの学習
第1章 なぜいまCなのか?
第2章 Ubuntuが提供する学習環境
- パッケージ管理システム
- Red Hat系 rpm形式 / Debian系 deb形式 / FreeBSD ports形式 / Soralis pkg形式
- Ubuntuパッケージ管理用コマンド
- dpkg / apt-get / aptitude
- 管理ソフトウェア Synaptic
第3章 大規模プログラミングとライブラリーの利用
- ヘッダーファイルをCとC++兼用する記述例
- C++からC言語のコードを利用する時には、C言語の関数を明示するために、extern "C" { ... } で囲む必要がある。
/* Guard C code in headers, while including them from C++ */
#ifdef __cplusplus
# define G_BEGIN_DECLS extern "C" {
# define G_END_DECLS }
#else
# define G_BEGIN_DECLS
# define G_END_DECLS
#endif
第4章 プログラミングの移植性
- 事前定義済みマクロの一覧
- Autotoolset さまざまな環境に対応したビルド手順を簡単にする
- ./configure -> make -> make install フローを作成
- configureスクリプトがソフトウェアを構築する環境情報を自動で集め、その環境にあったMakefileを作成
- aclocal, autoheader, autoconf, automake ツール使用
- CMakeツール
第5章 ライブラリの特徴と活用時の注意点
- 静的リンクと動的リンク
- 静的リンク・ライブラリ
- 共有ライブラリ
- gccで静的リンク利用
- ビルド時に-staticオプションを使用
- $gcc pgm.c -o pgm -static
- 動的リンク
- プログラム実行直前に、ld.soまたはld-linux.soという動的リンカにより、ライブラリへリンクされ実行可能にする。
- 動的ローディング
- 動的リンクの特殊ケース
- 次の手順で実現
- dlopen()で対象とするオブジェクトファイルを開く
- dlsym()でそのから実行したい関数へのポインタを習得
- その関数ポインタで示されるコードを呼び出す
- ライブラリ利用時の落とし穴
- API変更
- 実行時にリンクする共有ライブラリで後方互換性を確保するため、sonameという仕組みが用意
- ライブラリーをアップデートした時に、sonameの仕組みを活かして整合性を保つには、管理者権限でldonfigを実行
- ライブラリーで使用できるシンボルはnmコマンドで確認可能
第II部 活用編:さまざまなライブラリーを利用したプログラミング
第6章 オプション解析
第7章 データの取扱い
第8章 データベース・アプリケーション
第9章 ネットワーク
第10章 科学技術計算
第11章 画像データ処理
第12章 GUIプログラミング
第13章 コンピュータグラフィックス
第14章 デバイスのアクセス
第15章 エンコードとデコード、文字列の解釈
第16章 テスト手法
第III部 実践編:プログラミング開発事例
最終更新:2011年09月17日 23:55