「C言語によるスーパーLinuxプログラミング」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
*第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章 プログラミングの移植性
-事前定義済みマクロの一覧
--$echo | cpp -dM
-Autotoolset さまざまな環境に対応したビルド手順を簡単にする
--./configure -> make -> make install フローを作成
---configureスクリプトがソフトウェアを構築する環境情報を自動で集め、その環境にあったMakefileを作成
-- aclocal, autoheader, autoconf, automake ツール使用
-CMakeツール
--WindowsやMacOSXもサポート
**第5章 ライブラリの特徴と活用時の注意点
-静的リンクと動的リンク
--静的リンク・ライブラリ
--- *.a
--共有ライブラリ
---*.so
--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部 実践編:プログラミング開発事例
*第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章 プログラミングの移植性
-事前定義済みマクロの一覧
--$echo | cpp -dM
-Autotoolset さまざまな環境に対応したビルド手順を簡単にする
--./configure -> make -> make install フローを作成
---configureスクリプトがソフトウェアを構築する環境情報を自動で集め、その環境にあったMakefileを作成
-- aclocal, autoheader, autoconf, automake ツール使用
-CMakeツール
--WindowsやMacOSXもサポート
**第5章 ライブラリの特徴と活用時の注意点
-静的リンクと動的リンク
--静的リンク・ライブラリ
--- *.a
--共有ライブラリ
---*.so
--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部 実践編:プログラミング開発事例